menus...
* view->show: toggle crosshair, size, grid are check menu items * view->show: +Show Light Radiuses toggle * view->show->show stats makes effect immediately * view->show fix: check menu items are sensitive to changing options via shortcuts misc... * option to disable main toolbar * removed bobtoolz caulk selection button; filterbar one does the job better * filterbar: + region set selected button; rightclick = region off * filterbar: + hide selected button; rightclick = show hidden * SelectionSystem option: prefer point entities in 2D views (def = yes) * filterbar: indicate region, hide states by buttons states * fix: region compiles (run build with region enabled = compile regioned part only) * solid selection boxes by default (m_bNoStipple) * always use stipple for stuff behind stuff in 3d (was dependent on m_bNoStipple) * del unused ChooseSmallGridMajorColor ChooseSmallGridMinorColor preferences pipeline * fix: Active View Name and Outline... Clipper... colors saving * fix: ChooseCameraSelectedBrushColor changes the color (requires restart) * fix: ChooseSelectedBrushColor preference saving (requires restart) * fix rubberband selector appearence in 2D with 'show window outline' option enabled * multiple projections layouts: activate a projection on zoom * multiple projections layouts: added wnds updates to correctly indicate active projection (via wnd outline and projection name) * draw projection name is independent from show coordinates option * multiple projections layouts: greyscale axes in inactive views * 'show coordinates' is disabled by default * quick (hacky) method to render things, indicating viewport being active or not (axes, view name, wnd outline)
This commit is contained in:
parent
cac514541c
commit
5a8c27d93c
|
|
@ -155,7 +155,7 @@ const char* QERPlug_GetCommandTitleList(){
|
|||
}
|
||||
|
||||
|
||||
#define NUM_TOOLBARBUTTONS 14
|
||||
#define NUM_TOOLBARBUTTONS 13
|
||||
|
||||
std::size_t ToolbarButtonCount( void ) {
|
||||
return NUM_TOOLBARBUTTONS;
|
||||
|
|
@ -168,27 +168,27 @@ virtual const char* getImage() const {
|
|||
switch ( mIndex ) {
|
||||
case 0: return "bobtoolz_cleanup.png";
|
||||
case 1: return "bobtoolz_poly.png";
|
||||
case 2: return "bobtoolz_caulk.png";
|
||||
case 3: return "";
|
||||
case 4: return "bobtoolz_treeplanter.png";
|
||||
case 5: return "bobtoolz_trainpathplot.png";
|
||||
case 6: return "bobtoolz_dropent.png";
|
||||
case 7: return "";
|
||||
case 8: return "bobtoolz_merge.png";
|
||||
case 9: return "bobtoolz_split.png";
|
||||
case 10: return "bobtoolz_splitrow.png";
|
||||
case 11: return "bobtoolz_splitcol.png";
|
||||
case 12: return "";
|
||||
case 13: return "bobtoolz_turnedge.png";
|
||||
// case 2: return "bobtoolz_caulk.png";
|
||||
case 2: return "";
|
||||
case 3: return "bobtoolz_treeplanter.png";
|
||||
case 4: return "bobtoolz_trainpathplot.png";
|
||||
case 5: return "bobtoolz_dropent.png";
|
||||
case 6: return "";
|
||||
case 7: return "bobtoolz_merge.png";
|
||||
case 8: return "bobtoolz_split.png";
|
||||
case 9: return "bobtoolz_splitrow.png";
|
||||
case 10: return "bobtoolz_splitcol.png";
|
||||
case 11: return "";
|
||||
case 12: return "bobtoolz_turnedge.png";
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
virtual EType getType() const {
|
||||
switch ( mIndex ) {
|
||||
case 3: return eSpace;
|
||||
case 4: return eToggleButton;
|
||||
case 7: return eSpace;
|
||||
case 12: return eSpace;
|
||||
case 2: return eSpace;
|
||||
case 3: return eToggleButton;
|
||||
case 6: return eSpace;
|
||||
case 11: return eSpace;
|
||||
default: return eButton;
|
||||
}
|
||||
}
|
||||
|
|
@ -196,15 +196,15 @@ virtual const char* getText() const {
|
|||
switch ( mIndex ) {
|
||||
case 0: return "Cleanup";
|
||||
case 1: return "Polygons";
|
||||
case 2: return "Caulk";
|
||||
case 4: return "Tree Planter";
|
||||
case 5: return "Plot Splines";
|
||||
case 6: return "Drop Entity";
|
||||
case 8: return "Merge 2 Patches";
|
||||
case 9: return "Split Patch";
|
||||
case 10: return "Split Patch Rows";
|
||||
case 11: return "Split Patch Columns";
|
||||
case 13: return "Flip Terrain";
|
||||
// case 2: return "Caulk";
|
||||
case 3: return "Tree Planter";
|
||||
case 4: return "Plot Splines";
|
||||
case 5: return "Drop Entity";
|
||||
case 7: return "Merge 2 Patches";
|
||||
case 8: return "Split Patch";
|
||||
case 9: return "Split Patch Rows";
|
||||
case 10: return "Split Patch Columns";
|
||||
case 12: return "Flip Terrain";
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -212,15 +212,15 @@ virtual const char* getTooltip() const {
|
|||
switch ( mIndex ) {
|
||||
case 0: return "Brush Cleanup";
|
||||
case 1: return "Polygons";
|
||||
case 2: return "Caulk selection";
|
||||
case 4: return "Tree Planter";
|
||||
case 5: return "Plot Splines";
|
||||
case 6: return "Drop Entity";
|
||||
case 8: return "Merge 2 Patches";
|
||||
case 9: return "Split Patch";
|
||||
case 10: return "Split Patch Rows";
|
||||
case 11: return "Split Patch Columns";
|
||||
case 13: return "Flip Terrain (Turn Edge)";
|
||||
// case 2: return "Caulk selection";
|
||||
case 3: return "Tree Planter";
|
||||
case 4: return "Plot Splines";
|
||||
case 5: return "Drop Entity";
|
||||
case 7: return "Merge 2 Patches";
|
||||
case 8: return "Split Patch";
|
||||
case 9: return "Split Patch Rows";
|
||||
case 10: return "Split Patch Columns";
|
||||
case 12: return "Flip Terrain (Turn Edge)";
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -231,15 +231,15 @@ virtual void activate() const {
|
|||
switch ( mIndex ) {
|
||||
case 0: DoFixBrushes(); break;
|
||||
case 1: DoPolygonsTB(); break;
|
||||
case 2: DoCaulkSelection(); break;
|
||||
case 4: DoTreePlanter(); break;
|
||||
case 5: DoTrainPathPlot(); break;
|
||||
case 6: DoDropEnts(); break;
|
||||
case 8: DoMergePatches(); break;
|
||||
case 9: DoSplitPatch(); break;
|
||||
case 10: DoSplitPatchRows(); break;
|
||||
case 11: DoSplitPatchCols(); break;
|
||||
case 13: DoFlipTerrain(); break;
|
||||
// case 2: DoCaulkSelection(); break;
|
||||
case 3: DoTreePlanter(); break;
|
||||
case 4: DoTrainPathPlot(); break;
|
||||
case 5: DoDropEnts(); break;
|
||||
case 7: DoMergePatches(); break;
|
||||
case 8: DoSplitPatch(); break;
|
||||
case 9: DoSplitPatchRows(); break;
|
||||
case 10: DoSplitPatchCols(); break;
|
||||
case 12: DoFlipTerrain(); break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -93,6 +93,10 @@ void set( rectangle_t rectangle ){
|
|||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glOrtho( 0, width, 0, height, -100, 100 );
|
||||
|
||||
glMatrixMode( GL_MODELVIEW );
|
||||
glLoadIdentity();
|
||||
|
||||
glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
|
||||
glDisable( GL_DEPTH_TEST );
|
||||
|
||||
|
|
|
|||
|
|
@ -1425,7 +1425,7 @@ void render( const Matrix4& modelview, const Matrix4& projection ){
|
|||
Cam_Draw
|
||||
==============
|
||||
*/
|
||||
|
||||
/*
|
||||
void ShowStatsToggle(){
|
||||
g_camwindow_globals_private.m_showStats ^= 1;
|
||||
}
|
||||
|
|
@ -1439,6 +1439,14 @@ typedef FreeCaller1<const BoolImportCallback&, ShowStatsExport> ShowStatsExportC
|
|||
ShowStatsExportCaller g_show_stats_caller;
|
||||
BoolExportCallback g_show_stats_callback( g_show_stats_caller );
|
||||
ToggleItem g_show_stats( g_show_stats_callback );
|
||||
*/
|
||||
BoolExportCaller g_show_stats_caller( g_camwindow_globals_private.m_showStats );
|
||||
ToggleItem g_show_stats( g_show_stats_caller );
|
||||
void ShowStatsToggle(){
|
||||
g_camwindow_globals_private.m_showStats ^= 1;
|
||||
g_show_stats.update();
|
||||
UpdateAllWindows();
|
||||
}
|
||||
|
||||
void CamWnd::Cam_Draw(){
|
||||
glViewport( 0, 0, m_Camera.width, m_Camera.height );
|
||||
|
|
@ -1529,9 +1537,9 @@ void CamWnd::Cam_Draw(){
|
|||
break;
|
||||
}
|
||||
|
||||
if ( !g_xywindow_globals.m_bNoStipple ) {
|
||||
// if ( !g_xywindow_globals.m_bNoStipple ) {
|
||||
globalstate |= RENDER_LINESTIPPLE | RENDER_POLYGONSTIPPLE;
|
||||
}
|
||||
// }
|
||||
|
||||
{
|
||||
CamRenderer renderer( globalstate, m_state_select2, m_state_select1, m_view.getViewer() );
|
||||
|
|
@ -1948,7 +1956,7 @@ void CamWnd_Construct(){
|
|||
GlobalShortcuts_insert( "CameraFreeMoveLeft2", Accelerator( GDK_Left ) );
|
||||
GlobalShortcuts_insert( "CameraFreeMoveRight2", Accelerator( GDK_Right ) );
|
||||
|
||||
GlobalToggles_insert( "ShowStats", ShowStatsToggleCaller(), ToggleItem::AddCallbackCaller( g_show_stats ) );
|
||||
GlobalToggles_insert( "ShowStats", FreeCaller<ShowStatsToggle>(), ToggleItem::AddCallbackCaller( g_show_stats ) );
|
||||
|
||||
GlobalPreferenceSystem().registerPreference( "ShowStats", BoolImportStringCaller( g_camwindow_globals_private.m_showStats ), BoolExportStringCaller( g_camwindow_globals_private.m_showStats ) );
|
||||
GlobalPreferenceSystem().registerPreference( "MoveSpeed", IntImportStringCaller( g_camwindow_globals_private.m_nMoveSpeed ), IntExportStringCaller( g_camwindow_globals_private.m_nMoveSpeed ) );
|
||||
|
|
|
|||
|
|
@ -554,7 +554,7 @@ const char* misc_model_dialog( GtkWidget* parent ){
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
void LightRadiiImport( EntityCreator& self, bool value ){
|
||||
self.setLightRadii( value );
|
||||
}
|
||||
|
|
@ -579,8 +579,19 @@ void Entity_constructPage( PreferenceGroup& group ){
|
|||
void Entity_registerPreferencesPage(){
|
||||
PreferencesDialog_addDisplayPage( FreeCaller1<PreferenceGroup&, Entity_constructPage>() );
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
void ShowLightRadiiExport( const BoolImportCallback& importer ){
|
||||
importer( GlobalEntityCreator().getLightRadii() );
|
||||
}
|
||||
typedef FreeCaller1<const BoolImportCallback&, ShowLightRadiiExport> ShowLightRadiiExportCaller;
|
||||
ShowLightRadiiExportCaller g_show_lightradii_caller;
|
||||
ToggleItem g_show_lightradii_item( g_show_lightradii_caller );
|
||||
void ToggleShowLightRadii(){
|
||||
GlobalEntityCreator().setLightRadii( !GlobalEntityCreator().getLightRadii() );
|
||||
g_show_lightradii_item.update();
|
||||
UpdateAllWindows();
|
||||
}
|
||||
|
||||
void Entity_constructMenu( GtkMenu* menu ){
|
||||
create_menu_item_with_mnemonic( menu, "_Regroup", "GroupSelection" );
|
||||
|
|
@ -606,10 +617,12 @@ void Entity_Construct(){
|
|||
GlobalCommands_insert( "GroupSelection", FreeCaller<Entity_groupSelected>() );
|
||||
GlobalCommands_insert( "UngroupSelection", FreeCaller<Entity_ungroupSelected>() );
|
||||
|
||||
GlobalToggles_insert( "ShowLightRadiuses", FreeCaller<ToggleShowLightRadii>(), ToggleItem::AddCallbackCaller( g_show_lightradii_item ) );
|
||||
|
||||
GlobalPreferenceSystem().registerPreference( "SI_Colors5", Vector3ImportStringCaller( g_entity_globals.color_entity ), Vector3ExportStringCaller( g_entity_globals.color_entity ) );
|
||||
GlobalPreferenceSystem().registerPreference( "LastLightIntensity", IntImportStringCaller( g_iLastLightIntensity ), IntExportStringCaller( g_iLastLightIntensity ) );
|
||||
|
||||
Entity_registerPreferencesPage();
|
||||
// Entity_registerPreferencesPage();
|
||||
}
|
||||
|
||||
void Entity_Destroy(){
|
||||
|
|
|
|||
|
|
@ -175,60 +175,87 @@ gboolean Structural_button_press( GtkWidget *widget, GdkEventButton *event, gpoi
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
gboolean Region_button_press( GtkWidget *widget, GdkEventButton *event, gpointer data ){
|
||||
if ( event->button == 3 && event->type == GDK_BUTTON_PRESS ) {
|
||||
GlobalCommands_find( "RegionOff" ).m_callback();
|
||||
ToggleActions = 0;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
gboolean Hide_button_press( GtkWidget *widget, GdkEventButton *event, gpointer data ){
|
||||
if ( event->button == 3 && event->type == GDK_BUTTON_PRESS ) {
|
||||
GlobalCommands_find( "ShowHidden" ).m_callback();
|
||||
ToggleActions = 0;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
GtkToolbar* create_filter_toolbar(){
|
||||
GtkToolbar* filter_toolbar = GTK_TOOLBAR( gtk_toolbar_new() );
|
||||
gtk_widget_show( GTK_WIDGET( filter_toolbar ) );
|
||||
g_signal_connect( G_OBJECT( filter_toolbar ), "enter_notify_event", G_CALLBACK( ToggleActions0 ), 0 );
|
||||
GtkToolbar* toolbar = GTK_TOOLBAR( gtk_toolbar_new() );
|
||||
gtk_toolbar_set_style( toolbar, GTK_TOOLBAR_ICONS );
|
||||
// gtk_toolbar_set_show_arrow( toolbar, TRUE );
|
||||
gtk_widget_show( GTK_WIDGET( toolbar ) );
|
||||
g_signal_connect( G_OBJECT( toolbar ), "enter_notify_event", G_CALLBACK( ToggleActions0 ), 0 );
|
||||
|
||||
GtkToggleButton* button;
|
||||
|
||||
toolbar_append_toggle_button( filter_toolbar, "World (ALT + 1)", "f-world.png", "FilterWorldBrushes" );
|
||||
toolbar_append_toggle_button( toolbar, "World (ALT + 1)", "f-world.png", "FilterWorldBrushes" );
|
||||
|
||||
button = toolbar_append_toggle_button( filter_toolbar, "Structural (CTRL + SHIFT + D)\nRightClick: MakeStructural", "f-structural.png", "FilterStructural" );
|
||||
button = toolbar_append_toggle_button( toolbar, "Structural (CTRL + SHIFT + D)\nRightClick: MakeStructural", "f-structural.png", "FilterStructural" );
|
||||
g_signal_connect( G_OBJECT( button ), "button_press_event", G_CALLBACK( Structural_button_press ), 0 );
|
||||
|
||||
button = toolbar_append_toggle_button( filter_toolbar, "Details (CTRL + D)\nRightClick: MakeDetail", "f-details.png", "FilterDetails" );
|
||||
button = toolbar_append_toggle_button( toolbar, "Details (CTRL + D)\nRightClick: MakeDetail", "f-details.png", "FilterDetails" );
|
||||
g_signal_connect( G_OBJECT( button ), "button_press_event", G_CALLBACK( Detail_button_press ), 0 );
|
||||
|
||||
button = toolbar_append_toggle_button( filter_toolbar, "Func_Groups\nRightClick: create func_group", "f-funcgroups.png", "FilterFuncGroups" );
|
||||
button = toolbar_append_toggle_button( toolbar, "Func_Groups\nRightClick: create func_group", "f-funcgroups.png", "FilterFuncGroups" );
|
||||
g_signal_connect( G_OBJECT( button ), "button_press_event", G_CALLBACK( Func_Groups_button_press ), 0 );
|
||||
|
||||
toolbar_append_toggle_button( filter_toolbar, "Patches (CTRL + P)", "patch_wireframe.png", "FilterPatches" );
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( filter_toolbar ) );
|
||||
toolbar_append_toggle_button( toolbar, "Patches (CTRL + P)", "patch_wireframe.png", "FilterPatches" );
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
|
||||
button = toolbar_append_toggle_button( filter_toolbar, "Areaportals (ALT + 3)\nRightClick: toggle tex\n\tnoDraw\n\tnoDrawNonSolid", "f-areaportal.png", "FilterAreaportals" );
|
||||
button = toolbar_append_toggle_button( toolbar, "Areaportals (ALT + 3)\nRightClick: toggle tex\n\tnoDraw\n\tnoDrawNonSolid", "f-areaportal.png", "FilterAreaportals" );
|
||||
g_signal_connect( G_OBJECT( button ), "button_press_event", G_CALLBACK( Areaportals_button_press ), 0 );
|
||||
|
||||
|
||||
|
||||
toolbar_append_toggle_button( filter_toolbar, "Translucent (ALT + 4)", "f-translucent.png", "FilterTranslucent" );
|
||||
toolbar_append_toggle_button( toolbar, "Translucent (ALT + 4)", "f-translucent.png", "FilterTranslucent" );
|
||||
|
||||
button = toolbar_append_toggle_button( filter_toolbar, "Liquids (ALT + 5)\nRightClick: toggle tex\n\twaterCaulk\n\tlavaCaulk\n\tslimeCaulk", "f-liquids.png", "FilterLiquids" );
|
||||
button = toolbar_append_toggle_button( toolbar, "Liquids (ALT + 5)\nRightClick: toggle tex\n\twaterCaulk\n\tlavaCaulk\n\tslimeCaulk", "f-liquids.png", "FilterLiquids" );
|
||||
g_signal_connect( G_OBJECT( button ), "button_press_event", G_CALLBACK( Liquids_button_press ), 0 );
|
||||
|
||||
button = toolbar_append_toggle_button( filter_toolbar, "Caulk (ALT + 6)\nRightClick: tex Caulk", "f-caulk.png", "FilterCaulk" );
|
||||
button = toolbar_append_toggle_button( toolbar, "Caulk (ALT + 6)\nRightClick: tex Caulk", "f-caulk.png", "FilterCaulk" );
|
||||
g_signal_connect( G_OBJECT( button ), "button_press_event", G_CALLBACK( Caulk_button_press ), 0 );
|
||||
|
||||
button = toolbar_append_toggle_button( filter_toolbar, "Clips (ALT + 7)\nRightClick: toggle tex\n\tplayerClip\n\tweapClip", "f-clip.png", "FilterClips" );
|
||||
button = toolbar_append_toggle_button( toolbar, "Clips (ALT + 7)\nRightClick: toggle tex\n\tplayerClip\n\tweapClip", "f-clip.png", "FilterClips" );
|
||||
g_signal_connect( G_OBJECT( button ), "button_press_event", G_CALLBACK( Clip_button_press ), 0 );
|
||||
|
||||
button = toolbar_append_toggle_button( filter_toolbar, "HintsSkips (CTRL + H)\nRightClick: toggle tex\n\thint\n\thintLocal\n\thintSkip", "f-hint.png", "FilterHintsSkips" );
|
||||
button = toolbar_append_toggle_button( toolbar, "HintsSkips (CTRL + H)\nRightClick: toggle tex\n\thint\n\thintLocal\n\thintSkip", "f-hint.png", "FilterHintsSkips" );
|
||||
g_signal_connect( G_OBJECT( button ), "button_press_event", G_CALLBACK( Hint_button_press ), 0 );
|
||||
|
||||
//toolbar_append_toggle_button( filter_toolbar, "Paths (ALT + 8)", "texture_lock.png", "FilterPaths" );
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( filter_toolbar ) );
|
||||
toolbar_append_toggle_button( filter_toolbar, "Entities (ALT + 2)", "f-entities.png", "FilterEntities" );
|
||||
toolbar_append_toggle_button( filter_toolbar, "Lights (ALT + 0)", "f-lights.png", "FilterLights" );
|
||||
toolbar_append_toggle_button( filter_toolbar, "Models (SHIFT + M)", "f-models.png", "FilterModels" );
|
||||
//toolbar_append_toggle_button( toolbar, "Paths (ALT + 8)", "texture_lock.png", "FilterPaths" );
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
toolbar_append_toggle_button( toolbar, "Entities (ALT + 2)", "f-entities.png", "FilterEntities" );
|
||||
toolbar_append_toggle_button( toolbar, "Lights (ALT + 0)", "f-lights.png", "FilterLights" );
|
||||
toolbar_append_toggle_button( toolbar, "Models (SHIFT + M)", "f-models.png", "FilterModels" );
|
||||
|
||||
button = toolbar_append_toggle_button( filter_toolbar, "Triggers (CTRL + SHIFT + T)\nRightClick: tex Trigger", "f-triggers.png", "FilterTriggers" );
|
||||
button = toolbar_append_toggle_button( toolbar, "Triggers (CTRL + SHIFT + T)\nRightClick: tex Trigger", "f-triggers.png", "FilterTriggers" );
|
||||
g_signal_connect( G_OBJECT( button ), "button_press_event", G_CALLBACK( Trigger_button_press ), 0 );
|
||||
|
||||
//toolbar_append_toggle_button( filter_toolbar, "Decals (SHIFT + D)", "f-decals.png", "FilterDecals" );
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( filter_toolbar ) );
|
||||
toolbar_append_button( filter_toolbar, "InvertFilters", "f-invert.png", "InvertFilters" );
|
||||
//toolbar_append_toggle_button( toolbar, "Decals (SHIFT + D)", "f-decals.png", "FilterDecals" );
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
//toolbar_append_button( toolbar, "InvertFilters", "f-invert.png", "InvertFilters" );
|
||||
|
||||
toolbar_append_button( filter_toolbar, "ResetFilters", "f-reset.png", "ResetFilters" );
|
||||
return filter_toolbar;
|
||||
toolbar_append_button( toolbar, "ResetFilters", "f-reset.png", "ResetFilters" );
|
||||
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
button = toolbar_append_toggle_button( toolbar, "Region Set Selection (CTRL + SHIFT + R)\nRightClick: Region Off", "f-region.png", "RegionSetSelection" );
|
||||
g_signal_connect( G_OBJECT( button ), "button_press_event", G_CALLBACK( Region_button_press ), 0 );
|
||||
|
||||
button = toolbar_append_toggle_button( toolbar, "Hide Selected (H)\nRightClick: Show Hidden (SHIFT + H)", "f-hide.png", "HideSelected" );
|
||||
g_signal_connect( G_OBJECT( button ), "button_press_event", G_CALLBACK( Hide_button_press ), 0 );
|
||||
|
||||
return toolbar;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -720,8 +720,6 @@ void ColorScheme_Original(){
|
|||
g_xywindow_globals.color_gridback = Vector3( 1.0f, 1.0f, 1.0f );
|
||||
g_xywindow_globals.color_gridminor = Vector3( 0.75f, 0.75f, 0.75f );
|
||||
g_xywindow_globals.color_gridmajor = Vector3( 0.5f, 0.5f, 0.5f );
|
||||
g_xywindow_globals.color_gridminor_alt = Vector3( 0.5f, 0.0f, 0.0f );
|
||||
g_xywindow_globals.color_gridmajor_alt = Vector3( 1.0f, 0.0f, 0.0f );
|
||||
g_xywindow_globals.color_gridblock = Vector3( 0.0f, 0.0f, 1.0f );
|
||||
g_xywindow_globals.color_gridtext = Vector3( 0.0f, 0.0f, 0.0f );
|
||||
g_xywindow_globals.color_selbrushes = Vector3( 1.0f, 0.0f, 0.0f );
|
||||
|
|
@ -857,8 +855,6 @@ ChooseColour m_textureback;
|
|||
ChooseColour m_xyback;
|
||||
ChooseColour m_gridmajor;
|
||||
ChooseColour m_gridminor;
|
||||
ChooseColour m_gridmajor_alt;
|
||||
ChooseColour m_gridminor_alt;
|
||||
ChooseColour m_gridtext;
|
||||
ChooseColour m_gridblock;
|
||||
ChooseColour m_cameraback;
|
||||
|
|
@ -873,8 +869,6 @@ ColoursMenu() :
|
|||
m_xyback( ColourGetCaller( g_xywindow_globals.color_gridback ), ColourSetCaller( g_xywindow_globals.color_gridback ) ),
|
||||
m_gridmajor( ColourGetCaller( g_xywindow_globals.color_gridmajor ), ColourSetCaller( g_xywindow_globals.color_gridmajor ) ),
|
||||
m_gridminor( ColourGetCaller( g_xywindow_globals.color_gridminor ), ColourSetCaller( g_xywindow_globals.color_gridminor ) ),
|
||||
m_gridmajor_alt( ColourGetCaller( g_xywindow_globals.color_gridmajor_alt ), ColourSetCaller( g_xywindow_globals.color_gridmajor_alt ) ),
|
||||
m_gridminor_alt( ColourGetCaller( g_xywindow_globals.color_gridminor_alt ), ColourSetCaller( g_xywindow_globals.color_gridminor_alt ) ),
|
||||
m_gridtext( ColourGetCaller( g_xywindow_globals.color_gridtext ), ColourSetCaller( g_xywindow_globals.color_gridtext ) ),
|
||||
m_gridblock( ColourGetCaller( g_xywindow_globals.color_gridblock ), ColourSetCaller( g_xywindow_globals.color_gridblock ) ),
|
||||
m_cameraback( ColourGetCaller( g_camwindow_globals.color_cameraback ), ColourSetCaller( g_camwindow_globals.color_cameraback ) ),
|
||||
|
|
@ -910,19 +904,17 @@ GtkMenuItem* create_colours_menu(){
|
|||
menu_separator( menu_in_menu );
|
||||
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "_Texture Background...", "ChooseTextureBackgroundColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Camera Background...", "ChooseCameraBackgroundColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Grid Background...", "ChooseGridBackgroundColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Grid Major...", "ChooseGridMajorColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Grid Minor...", "ChooseGridMinorColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Grid Major Small...", "ChooseSmallGridMajorColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Grid Minor Small...", "ChooseSmallGridMinorColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Grid Text...", "ChooseGridTextColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Grid Block...", "ChooseGridBlockColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Default Brush...", "ChooseBrushColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Camera Background...", "ChooseCameraBackgroundColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Selected Brush...", "ChooseSelectedBrushColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Default Brush (2D)...", "ChooseBrushColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Selected Brush and Sizing (2D)...", "ChooseSelectedBrushColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Selected Brush (Camera)...", "ChooseCameraSelectedBrushColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Clipper...", "ChooseClipperColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Active View name...", "ChooseOrthoViewNameColor" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Active View Name and Outline...", "ChooseOrthoViewNameColor" );
|
||||
|
||||
return colours_menu_item;
|
||||
}
|
||||
|
|
@ -1818,6 +1810,7 @@ void ClipperChangeNotify(){
|
|||
|
||||
LatchedInt g_Layout_viewStyle( 0, "Window Layout" );
|
||||
LatchedBool g_Layout_enableDetachableMenus( true, "Detachable Menus" );
|
||||
LatchedBool g_Layout_enableMainToolbar( true, "Main Toolbar" );
|
||||
LatchedBool g_Layout_enablePatchToolbar( true, "Patch Toolbar" );
|
||||
LatchedBool g_Layout_enablePluginToolbar( true, "Plugin Toolbar" );
|
||||
LatchedBool g_Layout_enableFilterToolbar( true, "Filter Toolbar" );
|
||||
|
|
@ -1998,20 +1991,21 @@ GtkMenuItem* create_view_menu( MainFrame::EViewStyle style ){
|
|||
if ( g_Layout_enableDetachableMenus.m_value ) {
|
||||
menu_tearoff( menu_in_menu );
|
||||
}
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Show Size Info", "ToggleSizePaint" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Show Crosshair", "ToggleCrosshairs" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Show Grid", "ToggleGrid" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show Entity _Angles", "ShowAngles" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show Entity _Names", "ShowNames" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show Light Radiuses", "ShowLightRadiuses" );
|
||||
|
||||
menu_separator( menu_in_menu );
|
||||
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show _Angles", "ShowAngles" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show _Names", "ShowNames" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show Size Info", "ToggleSizePaint" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show Crosshair", "ToggleCrosshairs" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show Grid", "ToggleGrid" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show Blocks", "ShowBlocks" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show C_oordinates", "ShowCoordinates" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show Window Outline", "ShowWindowOutline" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show Axes", "ShowAxes" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show Workzone", "ShowWorkzone" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show Stats", "ShowStats" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Show Camera Stats", "ShowStats" );
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -2023,13 +2017,7 @@ GtkMenuItem* create_view_menu( MainFrame::EViewStyle style ){
|
|||
}
|
||||
menu_separator( menu );
|
||||
{
|
||||
// GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic( menu, "Hide/Show" );
|
||||
// if ( g_Layout_enableDetachableMenus.m_value ) {
|
||||
// menu_tearoff( menu_in_menu );
|
||||
// }
|
||||
// create_menu_item_with_mnemonic( menu_in_menu, "Hide Selected", "HideSelected" );
|
||||
// create_menu_item_with_mnemonic( menu_in_menu, "Show Hidden", "ShowHidden" );
|
||||
create_menu_item_with_mnemonic( menu, "Hide Selected", "HideSelected" );
|
||||
create_check_menu_item_with_mnemonic( menu, "Hide Selected", "HideSelected" );
|
||||
create_menu_item_with_mnemonic( menu, "Show Hidden", "ShowHidden" );
|
||||
}
|
||||
menu_separator( menu );
|
||||
|
|
@ -2041,10 +2029,10 @@ GtkMenuItem* create_view_menu( MainFrame::EViewStyle style ){
|
|||
create_menu_item_with_mnemonic( menu_in_menu, "_Off", "RegionOff" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "_Set XY", "RegionSetXY" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Set _Brush", "RegionSetBrush" );
|
||||
create_menu_item_with_mnemonic( menu_in_menu, "Set Se_lected Brushes", "RegionSetSelection" );
|
||||
create_check_menu_item_with_mnemonic( menu_in_menu, "Set Se_lected Brushes", "RegionSetSelection" );
|
||||
}
|
||||
|
||||
command_connect_accelerator( "CenterXYView" );
|
||||
//command_connect_accelerator( "CenterXYView" );
|
||||
|
||||
return view_menu_item;
|
||||
}
|
||||
|
|
@ -2392,69 +2380,60 @@ GtkToolbar* create_main_toolbar( MainFrame::EViewStyle style ){
|
|||
GtkToolbar* toolbar = GTK_TOOLBAR( gtk_toolbar_new() );
|
||||
gtk_toolbar_set_orientation( toolbar, GTK_ORIENTATION_HORIZONTAL );
|
||||
gtk_toolbar_set_style( toolbar, GTK_TOOLBAR_ICONS );
|
||||
|
||||
// gtk_toolbar_set_show_arrow( toolbar, TRUE );
|
||||
//gtk_orientable_set_orientation( GTK_ORIENTABLE( toolbar ), GTK_ORIENTATION_HORIZONTAL );
|
||||
//toolbar_append_space( toolbar );
|
||||
gtk_widget_show( GTK_WIDGET( toolbar ) );
|
||||
|
||||
File_constructToolbar( toolbar );
|
||||
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
gtk_toolbar_append_space( toolbar );
|
||||
|
||||
UndoRedo_constructToolbar( toolbar );
|
||||
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
gtk_toolbar_append_space( toolbar );
|
||||
|
||||
RotateFlip_constructToolbar( toolbar );
|
||||
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
gtk_toolbar_append_space( toolbar );
|
||||
|
||||
Select_constructToolbar( toolbar );
|
||||
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
gtk_toolbar_append_space( toolbar );
|
||||
|
||||
CSG_constructToolbar( toolbar );
|
||||
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
gtk_toolbar_append_space( toolbar );
|
||||
|
||||
ComponentModes_constructToolbar( toolbar );
|
||||
gtk_toolbar_append_space( toolbar );
|
||||
|
||||
if ( style == MainFrame::eRegular || style == MainFrame::eRegularLeft ) {
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
|
||||
XYWnd_constructToolbar( toolbar );
|
||||
gtk_toolbar_append_space( toolbar );
|
||||
}
|
||||
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
|
||||
CamWnd_constructToolbar( toolbar );
|
||||
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
gtk_toolbar_append_space( toolbar );
|
||||
|
||||
Manipulators_constructToolbar( toolbar );
|
||||
gtk_toolbar_append_space( toolbar );
|
||||
|
||||
if ( g_Layout_enablePatchToolbar.m_value ) {
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
|
||||
Patch_constructToolbar( toolbar );
|
||||
gtk_toolbar_append_space( toolbar );
|
||||
}
|
||||
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
|
||||
toolbar_append_toggle_button( toolbar, "Texture Lock (SHIFT + T)", "texture_lock.png", "TogTexLock" );
|
||||
gtk_toolbar_append_space( toolbar );
|
||||
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
|
||||
GtkButton* g_view_entities_button = toolbar_append_button( toolbar, "Entities (N)", "entities.png", "ToggleEntityInspector" );
|
||||
toolbar_append_button( toolbar, "Entities (N)", "entities.png", "ToggleEntityInspector" );
|
||||
// disable the console and texture button in the regular layouts
|
||||
if ( style != MainFrame::eRegular && style != MainFrame::eRegularLeft ) {
|
||||
GtkButton* g_view_console_button = toolbar_append_button( toolbar, "Console (O)", "console.png", "ToggleConsole" );
|
||||
GtkButton* g_view_textures_button = toolbar_append_button( toolbar, "Texture Browser (T)", "texture_browser.png", "ToggleTextures" );
|
||||
toolbar_append_button( toolbar, "Console (O)", "console.png", "ToggleConsole" );
|
||||
toolbar_append_button( toolbar, "Texture Browser (T)", "texture_browser.png", "ToggleTextures" );
|
||||
}
|
||||
|
||||
// TODO: call light inspector
|
||||
//GtkButton* g_view_lightinspector_button = toolbar_append_button(toolbar, "Light Inspector", "lightinspector.png", "ToggleLightInspector");
|
||||
|
||||
gtk_toolbar_append_space( GTK_TOOLBAR( toolbar ) );
|
||||
GtkButton* g_refresh_models_button = toolbar_append_button( toolbar, "Refresh Models", "refresh_models.png", "RefreshReferences" );
|
||||
gtk_toolbar_append_space( toolbar );
|
||||
toolbar_append_button( toolbar, "Refresh Models", "refresh_models.png", "RefreshReferences" );
|
||||
|
||||
return toolbar;
|
||||
}
|
||||
|
|
@ -2819,10 +2798,10 @@ void MainFrame::Create(){
|
|||
GtkMenuBar* main_menu = create_main_menu( CurrentStyle() );
|
||||
gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( main_menu ), FALSE, FALSE, 0 );
|
||||
|
||||
if( g_Layout_enableMainToolbar.m_value ){
|
||||
GtkToolbar* main_toolbar = create_main_toolbar( CurrentStyle() );
|
||||
gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( main_toolbar ), FALSE, FALSE, 0 );
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ( g_Layout_enablePluginToolbar.m_value || g_Layout_enableFilterToolbar.m_value ){
|
||||
|
|
@ -3249,6 +3228,11 @@ void Layout_constructPreferences( PreferencesPage& page ){
|
|||
LatchedBoolImportCaller( g_Layout_enableDetachableMenus ),
|
||||
BoolExportCaller( g_Layout_enableDetachableMenus.m_latched )
|
||||
);
|
||||
page.appendCheckBox(
|
||||
"", "Main Toolbar",
|
||||
LatchedBoolImportCaller( g_Layout_enableMainToolbar ),
|
||||
BoolExportCaller( g_Layout_enableMainToolbar.m_latched )
|
||||
);
|
||||
if ( !string_empty( g_pGameDescription->getKeyValue( "no_patch" ) ) ) {
|
||||
page.appendCheckBox(
|
||||
"", "Patch Toolbar",
|
||||
|
|
@ -3408,8 +3392,9 @@ void MainFrame_Construct(){
|
|||
GlobalCommands_insert( "ToggleEntityInspector", FreeCaller<EntityInspector_ToggleShow>(), Accelerator( 'N' ) );
|
||||
GlobalCommands_insert( "EntityList", FreeCaller<EntityList_toggleShown>(), Accelerator( 'L' ) );
|
||||
|
||||
GlobalCommands_insert( "ShowHidden", FreeCaller<Select_ShowAllHidden>(), Accelerator( 'H', (GdkModifierType)GDK_SHIFT_MASK ) );
|
||||
GlobalCommands_insert( "HideSelected", FreeCaller<HideSelected>(), Accelerator( 'H' ) );
|
||||
// GlobalCommands_insert( "ShowHidden", FreeCaller<Select_ShowAllHidden>(), Accelerator( 'H', (GdkModifierType)GDK_SHIFT_MASK ) );
|
||||
// GlobalCommands_insert( "HideSelected", FreeCaller<HideSelected>(), Accelerator( 'H' ) );
|
||||
Hide_registerCommands();
|
||||
|
||||
GlobalToggles_insert( "DragVertices", FreeCaller<SelectVertexMode>(), ToggleItem::AddCallbackCaller( g_vertexMode_button ), Accelerator( 'V' ) );
|
||||
GlobalToggles_insert( "DragEdges", FreeCaller<SelectEdgeMode>(), ToggleItem::AddCallbackCaller( g_edgeMode_button ), Accelerator( 'E' ) );
|
||||
|
|
@ -3451,8 +3436,6 @@ void MainFrame_Construct(){
|
|||
GlobalCommands_insert( "ChooseGridBackgroundColor", makeCallback( g_ColoursMenu.m_xyback ) );
|
||||
GlobalCommands_insert( "ChooseGridMajorColor", makeCallback( g_ColoursMenu.m_gridmajor ) );
|
||||
GlobalCommands_insert( "ChooseGridMinorColor", makeCallback( g_ColoursMenu.m_gridminor ) );
|
||||
GlobalCommands_insert( "ChooseSmallGridMajorColor", makeCallback( g_ColoursMenu.m_gridmajor_alt ) );
|
||||
GlobalCommands_insert( "ChooseSmallGridMinorColor", makeCallback( g_ColoursMenu.m_gridminor_alt ) );
|
||||
GlobalCommands_insert( "ChooseGridTextColor", makeCallback( g_ColoursMenu.m_gridtext ) );
|
||||
GlobalCommands_insert( "ChooseGridBlockColor", makeCallback( g_ColoursMenu.m_gridblock ) );
|
||||
GlobalCommands_insert( "ChooseBrushColor", makeCallback( g_ColoursMenu.m_brush ) );
|
||||
|
|
@ -3503,6 +3486,7 @@ void MainFrame_Construct(){
|
|||
GlobalSelectionSystem().addSelectionChangeCallback( ComponentModeSelectionChangedCaller() );
|
||||
|
||||
GlobalPreferenceSystem().registerPreference( "DetachableMenus", BoolImportStringCaller( g_Layout_enableDetachableMenus.m_latched ), BoolExportStringCaller( g_Layout_enableDetachableMenus.m_latched ) );
|
||||
GlobalPreferenceSystem().registerPreference( "MainToolBar", BoolImportStringCaller( g_Layout_enableMainToolbar.m_latched ), BoolExportStringCaller( g_Layout_enableMainToolbar.m_latched ) );
|
||||
GlobalPreferenceSystem().registerPreference( "PatchToolBar", BoolImportStringCaller( g_Layout_enablePatchToolbar.m_latched ), BoolExportStringCaller( g_Layout_enablePatchToolbar.m_latched ) );
|
||||
GlobalPreferenceSystem().registerPreference( "PluginToolBar", BoolImportStringCaller( g_Layout_enablePluginToolbar.m_latched ), BoolExportStringCaller( g_Layout_enablePluginToolbar.m_latched ) );
|
||||
GlobalPreferenceSystem().registerPreference( "FilterToolBar", BoolImportStringCaller( g_Layout_enableFilterToolbar.m_latched ), BoolExportStringCaller( g_Layout_enableFilterToolbar.m_latched ) );
|
||||
|
|
@ -3548,6 +3532,7 @@ void MainFrame_Construct(){
|
|||
|
||||
g_Layout_viewStyle.useLatched();
|
||||
g_Layout_enableDetachableMenus.useLatched();
|
||||
g_Layout_enableMainToolbar.useLatched();
|
||||
g_Layout_enablePatchToolbar.useLatched();
|
||||
g_Layout_enablePluginToolbar.useLatched();
|
||||
g_Layout_enableFilterToolbar.useLatched();
|
||||
|
|
|
|||
|
|
@ -1267,7 +1267,11 @@ void ConstructRegionStartpoint( scene::Node* startpoint, const Vector3& region_m
|
|||
|
||||
===========================================================
|
||||
*/
|
||||
bool region_active;
|
||||
bool region_active = false;
|
||||
|
||||
BoolExportCaller g_region_caller( region_active );
|
||||
ToggleItem g_region_item( g_region_caller );
|
||||
|
||||
Vector3 region_mins( g_MinWorldCoord, g_MinWorldCoord, g_MinWorldCoord );
|
||||
Vector3 region_maxs( g_MaxWorldCoord, g_MaxWorldCoord, g_MaxWorldCoord );
|
||||
|
||||
|
|
@ -1391,6 +1395,7 @@ void Scene_Exclude_Region( bool exclude ){
|
|||
*/
|
||||
void Map_RegionOff(){
|
||||
region_active = false;
|
||||
g_region_item.update();
|
||||
|
||||
region_maxs[0] = g_MaxWorldCoord - 64;
|
||||
region_mins[0] = g_MinWorldCoord + 64;
|
||||
|
|
@ -1404,6 +1409,7 @@ void Map_RegionOff(){
|
|||
|
||||
void Map_ApplyRegion( void ){
|
||||
region_active = true;
|
||||
g_region_item.update();
|
||||
|
||||
Scene_Exclude_Region( false );
|
||||
}
|
||||
|
|
@ -1420,6 +1426,7 @@ void Map_RegionSelectedBrushes( void ){
|
|||
if ( GlobalSelectionSystem().countSelected() != 0
|
||||
&& GlobalSelectionSystem().Mode() == SelectionSystem::ePrimitive ) {
|
||||
region_active = true;
|
||||
g_region_item.update();
|
||||
Select_GetBounds( region_mins, region_maxs );
|
||||
|
||||
Scene_Exclude_Selected( false );
|
||||
|
|
@ -2161,7 +2168,8 @@ void Map_Construct(){
|
|||
GlobalCommands_insert( "RegionOff", FreeCaller<RegionOff>() );
|
||||
GlobalCommands_insert( "RegionSetXY", FreeCaller<RegionXY>() );
|
||||
GlobalCommands_insert( "RegionSetBrush", FreeCaller<RegionBrush>() );
|
||||
GlobalCommands_insert( "RegionSetSelection", FreeCaller<RegionSelected>(), Accelerator( 'R', (GdkModifierType)( GDK_SHIFT_MASK | GDK_CONTROL_MASK ) ) );
|
||||
//GlobalCommands_insert( "RegionSetSelection", FreeCaller<RegionSelected>(), Accelerator( 'R', (GdkModifierType)( GDK_SHIFT_MASK | GDK_CONTROL_MASK ) ) );
|
||||
GlobalToggles_insert( "RegionSetSelection", FreeCaller<RegionSelected>(), ToggleItem::AddCallbackCaller( g_region_item ), Accelerator( 'R', (GdkModifierType)( GDK_SHIFT_MASK | GDK_CONTROL_MASK ) ) );
|
||||
|
||||
GlobalPreferenceSystem().registerPreference( "LastMap", CopiedStringImportStringCaller( g_strLastMap ), CopiedStringExportStringCaller( g_strLastMap ) );
|
||||
GlobalPreferenceSystem().registerPreference( "LoadLastMap", BoolImportStringCaller( g_bLoadLastMap ), BoolExportStringCaller( g_bLoadLastMap ) );
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
GtkImage* new_plugin_image( const char* filename ){
|
||||
{
|
||||
StringOutputStream fullpath( 256 );
|
||||
fullpath << GameToolsPath_get() << g_pluginsDir << "bitmaps/" << filename;
|
||||
fullpath << AppPath_get() << g_pluginsDir << "bitmaps/" << filename;
|
||||
GtkImage* image = image_new_from_file_with_mask( fullpath.c_str() );
|
||||
if ( image != 0 ) {
|
||||
return image;
|
||||
|
|
@ -46,7 +46,7 @@ GtkImage* new_plugin_image( const char* filename ){
|
|||
|
||||
{
|
||||
StringOutputStream fullpath( 256 );
|
||||
fullpath << AppPath_get() << g_pluginsDir << "bitmaps/" << filename;
|
||||
fullpath << GameToolsPath_get() << g_pluginsDir << "bitmaps/" << filename;
|
||||
GtkImage* image = image_new_from_file_with_mask( fullpath.c_str() );
|
||||
if ( image != 0 ) {
|
||||
return image;
|
||||
|
|
@ -130,6 +130,7 @@ GtkToolbar* create_plugin_toolbar(){
|
|||
toolbar = GTK_TOOLBAR( gtk_toolbar_new() );
|
||||
gtk_toolbar_set_orientation( toolbar, GTK_ORIENTATION_HORIZONTAL );
|
||||
gtk_toolbar_set_style( toolbar, GTK_TOOLBAR_ICONS );
|
||||
// gtk_toolbar_set_show_arrow( toolbar, TRUE );
|
||||
gtk_widget_show( GTK_WIDGET( toolbar ) );
|
||||
|
||||
g_plugin_toolbar = toolbar;
|
||||
|
|
|
|||
|
|
@ -168,7 +168,15 @@ void bsp_init(){
|
|||
StringOutputStream name( 256 );
|
||||
name << StringRange( mapname, path_get_filename_base_end( mapname ) ) << ".bsp";
|
||||
|
||||
if( region_active ){
|
||||
StringOutputStream name( 256 );
|
||||
name << StringRange( mapname, path_get_filename_base_end( mapname ) ) << ".reg";
|
||||
build_set_variable( "MapFile", name.c_str() );
|
||||
}
|
||||
else{
|
||||
build_set_variable( "MapFile", mapname );
|
||||
}
|
||||
|
||||
build_set_variable( "BspFile", name.c_str() );
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@
|
|||
#include "preferences.h"
|
||||
|
||||
#include "xywindow.h"
|
||||
#include "camwindow.h"
|
||||
|
||||
|
||||
|
||||
|
|
@ -2151,9 +2152,9 @@ void OpenGLShader::construct( const char* name ){
|
|||
state.m_sort = OpenGLState::eSortFullbright;
|
||||
}
|
||||
else if ( string_equal( name + 1, "CAM_HIGHLIGHT" ) ) {
|
||||
state.m_colour[0] = 1;
|
||||
state.m_colour[1] = 0;
|
||||
state.m_colour[2] = 0;
|
||||
state.m_colour[0] = g_camwindow_globals.color_selbrushes3d[0];
|
||||
state.m_colour[1] = g_camwindow_globals.color_selbrushes3d[1];
|
||||
state.m_colour[2] = g_camwindow_globals.color_selbrushes3d[2];
|
||||
state.m_colour[3] = 0.3f;
|
||||
state.m_state = RENDER_FILL | RENDER_DEPTHTEST | RENDER_CULLFACE | RENDER_BLEND | RENDER_COLOURWRITE | RENDER_DEPTHWRITE;
|
||||
state.m_sort = OpenGLState::eSortHighlight;
|
||||
|
|
|
|||
|
|
@ -705,12 +705,21 @@ void Select_FitTexture( float horizontal, float vertical ){
|
|||
SceneChangeNotify();
|
||||
}
|
||||
|
||||
|
||||
#include "commands.h"
|
||||
#include "dialog.h"
|
||||
|
||||
inline void hide_node( scene::Node& node, bool hide ){
|
||||
hide
|
||||
? node.enable( scene::Node::eHidden )
|
||||
: node.disable( scene::Node::eHidden );
|
||||
}
|
||||
|
||||
bool g_nodes_be_hidden = false;
|
||||
|
||||
BoolExportCaller g_hidden_caller( g_nodes_be_hidden );
|
||||
ToggleItem g_hidden_item( g_hidden_caller );
|
||||
|
||||
class HideSelectedWalker : public scene::Graph::Walker
|
||||
{
|
||||
bool m_hide;
|
||||
|
|
@ -722,6 +731,7 @@ bool pre( const scene::Path& path, scene::Instance& instance ) const {
|
|||
Selectable* selectable = Instance_getSelectable( instance );
|
||||
if ( selectable != 0
|
||||
&& selectable->isSelected() ) {
|
||||
g_nodes_be_hidden = m_hide;
|
||||
hide_node( path.top(), m_hide );
|
||||
}
|
||||
return true;
|
||||
|
|
@ -740,6 +750,7 @@ void Select_Hide(){
|
|||
void HideSelected(){
|
||||
Select_Hide();
|
||||
GlobalSelectionSystem().setSelectedAll( false );
|
||||
g_hidden_item.update();
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -763,6 +774,13 @@ void Scene_Hide_All( bool hide ){
|
|||
void Select_ShowAllHidden(){
|
||||
Scene_Hide_All( false );
|
||||
SceneChangeNotify();
|
||||
g_nodes_be_hidden = false;
|
||||
g_hidden_item.update();
|
||||
}
|
||||
|
||||
void Hide_registerCommands(){
|
||||
GlobalCommands_insert( "ShowHidden", FreeCaller<Select_ShowAllHidden>(), Accelerator( 'H', (GdkModifierType)GDK_SHIFT_MASK ) );
|
||||
GlobalToggles_insert( "HideSelected", FreeCaller<HideSelected>(), ToggleItem::AddCallbackCaller( g_hidden_item ), Accelerator( 'H' ) );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ void FindReplaceTextures( const char* pFind, const char* pReplace, bool bSelecte
|
|||
|
||||
void HideSelected();
|
||||
void Select_ShowAllHidden();
|
||||
void Hide_registerCommands();
|
||||
|
||||
// updating workzone to a given brush (depends on current view)
|
||||
|
||||
|
|
|
|||
|
|
@ -2575,6 +2575,7 @@ Rotation m_rotation;
|
|||
Scale m_scale;
|
||||
public:
|
||||
static Shader* m_state;
|
||||
bool m_bPreferPointEntsIn2D;
|
||||
private:
|
||||
EManipulatorMode m_manipulator_mode;
|
||||
Manipulator* m_manipulator;
|
||||
|
|
@ -2628,6 +2629,7 @@ enum EModifier
|
|||
};
|
||||
|
||||
RadiantSelectionSystem() :
|
||||
m_bPreferPointEntsIn2D( true ),
|
||||
m_undo_begun( false ),
|
||||
m_mode( ePrimitive ),
|
||||
m_componentmode( eDefault ),
|
||||
|
|
@ -2852,11 +2854,76 @@ void SelectPoint( const View& view, const float device_point[2], const float dev
|
|||
|
||||
SelectionVolume volume( scissored );
|
||||
SelectionPool selector;
|
||||
if ( face ) {
|
||||
SelectionPool selector_point_ents;
|
||||
const bool prefer_point_ents = m_bPreferPointEntsIn2D && Mode() == ePrimitive && !view.fill() && !face
|
||||
&& ( modifier == RadiantSelectionSystem::eReplace || modifier == RadiantSelectionSystem::eSelect || modifier == RadiantSelectionSystem::eDeselect );
|
||||
|
||||
if( prefer_point_ents ){
|
||||
Scene_TestSelect( selector_point_ents, volume, scissored, eEntity, ComponentMode() );
|
||||
}
|
||||
if( prefer_point_ents && !selector_point_ents.failed() ){
|
||||
switch ( modifier )
|
||||
{
|
||||
// if cycle mode not enabled, enable it
|
||||
case RadiantSelectionSystem::eReplace:
|
||||
{
|
||||
// select closest
|
||||
( *selector_point_ents.begin() ).second->setSelected( true );
|
||||
}
|
||||
break;
|
||||
case RadiantSelectionSystem::eSelect:
|
||||
{
|
||||
SelectionPool::iterator best = selector_point_ents.begin();
|
||||
if( !( *best ).second->isSelected() ){
|
||||
( *best ).second->setSelected( true );
|
||||
}
|
||||
SelectionPool::iterator i = best;
|
||||
++i;
|
||||
while ( i != selector_point_ents.end() )
|
||||
{
|
||||
if( ( *i ).first.equalEpsilon( ( *best ).first, 0.25f, 0.000001f ) ){
|
||||
if( !( *i ).second->isSelected() ){
|
||||
( *i ).second->setSelected( true );
|
||||
}
|
||||
}
|
||||
else{
|
||||
break;
|
||||
}
|
||||
++i;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case RadiantSelectionSystem::eDeselect:
|
||||
{
|
||||
SelectionPool::iterator best = selector_point_ents.begin();
|
||||
if( ( *best ).second->isSelected() ){
|
||||
( *best ).second->setSelected( false );
|
||||
}
|
||||
SelectionPool::iterator i = best;
|
||||
++i;
|
||||
while ( i != selector_point_ents.end() )
|
||||
{
|
||||
if( ( *i ).first.equalEpsilon( ( *best ).first, 0.25f, 0.000001f ) ){
|
||||
if( ( *i ).second->isSelected() ){
|
||||
( *i ).second->setSelected( false );
|
||||
}
|
||||
}
|
||||
else{
|
||||
break;
|
||||
}
|
||||
++i;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else{
|
||||
if ( face ){
|
||||
Scene_TestSelect_Component( selector, volume, scissored, eFace );
|
||||
}
|
||||
else
|
||||
{
|
||||
else{
|
||||
Scene_TestSelect( selector, volume, scissored, Mode(), ComponentMode() );
|
||||
}
|
||||
|
||||
|
|
@ -2962,6 +3029,7 @@ void SelectPoint( const View& view, const float device_point[2], const float dev
|
|||
deselectComponentsOrAll( face );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool SelectPoint_InitPaint( const View& view, const float device_point[2], const float device_epsilon[2], bool face ){
|
||||
|
|
@ -2976,15 +3044,38 @@ bool SelectPoint_InitPaint( const View& view, const float device_point[2], const
|
|||
|
||||
SelectionVolume volume( scissored );
|
||||
SelectionPool selector;
|
||||
if ( face ) {
|
||||
SelectionPool selector_point_ents;
|
||||
const bool prefer_point_ents = m_bPreferPointEntsIn2D && Mode() == ePrimitive && !view.fill() && !face;
|
||||
|
||||
if( prefer_point_ents ){
|
||||
Scene_TestSelect( selector_point_ents, volume, scissored, eEntity, ComponentMode() );
|
||||
}
|
||||
if( prefer_point_ents && !selector_point_ents.failed() ){
|
||||
SelectableSortedSet::iterator best = selector_point_ents.begin();
|
||||
const bool wasSelected = ( *best ).second->isSelected();
|
||||
( *best ).second->setSelected( !wasSelected );
|
||||
SelectableSortedSet::iterator i = best;
|
||||
++i;
|
||||
while ( i != selector_point_ents.end() )
|
||||
{
|
||||
if( ( *i ).first.equalEpsilon( ( *best ).first, 0.25f, 0.000001f ) ){
|
||||
( *i ).second->setSelected( !wasSelected );
|
||||
}
|
||||
else{
|
||||
break;
|
||||
}
|
||||
++i;
|
||||
}
|
||||
return !wasSelected;
|
||||
}
|
||||
else{//do primitives, if ents failed
|
||||
if ( face ){
|
||||
Scene_TestSelect_Component( selector, volume, scissored, eFace );
|
||||
}
|
||||
else
|
||||
{
|
||||
else{
|
||||
Scene_TestSelect( selector, volume, scissored, Mode(), ComponentMode() );
|
||||
}
|
||||
|
||||
if ( !selector.failed() ) {
|
||||
if ( !selector.failed() ){
|
||||
SelectableSortedSet::iterator best = selector.begin();
|
||||
const bool wasSelected = ( *best ).second->isSelected();
|
||||
( *best ).second->setSelected( !wasSelected );
|
||||
|
|
@ -3006,6 +3097,7 @@ bool SelectPoint_InitPaint( const View& view, const float device_point[2], const
|
|||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SelectArea( const View& view, const float device_point[2], const float device_delta[2], RadiantSelectionSystem::EModifier modifier, bool face ){
|
||||
|
|
@ -3187,7 +3279,7 @@ inline RadiantSelectionSystem& getSelectionSystem(){
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
#include "map.h"
|
||||
|
||||
class testselect_entity_visible : public scene::Graph::Walker
|
||||
{
|
||||
|
|
@ -3198,6 +3290,10 @@ testselect_entity_visible( Selector& selector, SelectionTest& test )
|
|||
: m_selector( selector ), m_test( test ){
|
||||
}
|
||||
bool pre( const scene::Path& path, scene::Instance& instance ) const {
|
||||
if( path.top().get_pointer() == Map_GetWorldspawn( g_map ) ||
|
||||
node_is_group( path.top().get() ) ){
|
||||
return false;
|
||||
}
|
||||
Selectable* selectable = Instance_getSelectable( instance );
|
||||
if ( selectable != 0
|
||||
&& Node_isEntity( path.top() ) ) {
|
||||
|
|
@ -3636,12 +3732,26 @@ void RadiantSelectionSystem::renderSolid( Renderer& renderer, const VolumeTest&
|
|||
#endif
|
||||
}
|
||||
|
||||
#include "preferencesystem.h"
|
||||
#include "preferences.h"
|
||||
|
||||
void SelectionSystem_constructPreferences( PreferencesPage& page ){
|
||||
page.appendCheckBox( "", "Prefer point entities in 2D", getSelectionSystem().m_bPreferPointEntsIn2D );
|
||||
}
|
||||
void SelectionSystem_constructPage( PreferenceGroup& group ){
|
||||
PreferencesPage page( group.createPage( "Selection", "Selection System Settings" ) );
|
||||
SelectionSystem_constructPreferences( page );
|
||||
}
|
||||
void SelectionSystem_registerPreferencesPage(){
|
||||
PreferencesDialog_addSettingsPage( FreeCaller1<PreferenceGroup&, SelectionSystem_constructPage>() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
void SelectionSystem_OnBoundsChanged(){
|
||||
getSelectionSystem().pivotChanged();
|
||||
}
|
||||
|
||||
|
||||
SignalHandlerId SelectionSystem_boundsChanged;
|
||||
|
||||
void SelectionSystem_Construct(){
|
||||
|
|
@ -3652,6 +3762,9 @@ void SelectionSystem_Construct(){
|
|||
SelectionSystem_boundsChanged = GlobalSceneGraph().addBoundsChangedCallback( FreeCaller<SelectionSystem_OnBoundsChanged>() );
|
||||
|
||||
GlobalShaderCache().attachRenderable( getSelectionSystem() );
|
||||
|
||||
GlobalPreferenceSystem().registerPreference( "PreferPointEntsIn2D", BoolImportStringCaller( getSelectionSystem().m_bPreferPointEntsIn2D ), BoolExportStringCaller( getSelectionSystem().m_bPreferPointEntsIn2D ) );
|
||||
SelectionSystem_registerPreferencesPage();
|
||||
}
|
||||
|
||||
void SelectionSystem_Destroy(){
|
||||
|
|
|
|||
|
|
@ -359,7 +359,7 @@ struct xywindow_globals_private_t
|
|||
d_showgrid( true ),
|
||||
|
||||
show_names( false ),
|
||||
show_coordinates( true ),
|
||||
show_coordinates( false ),
|
||||
show_angles( true ),
|
||||
show_outline( false ),
|
||||
show_axis( true ),
|
||||
|
|
@ -730,21 +730,23 @@ Shader* XYWnd::m_state_selected = 0;
|
|||
void xy_update_xor_rectangle( XYWnd& self, rect_t area ){
|
||||
if ( GTK_WIDGET_VISIBLE( self.GetWidget() ) ) {
|
||||
rectangle_t rect = rectangle_from_area( area.min, area.max, self.Width(), self.Height() );
|
||||
int nDim1 = ( self.GetViewType() == YZ ) ? 1 : 0;
|
||||
int nDim2 = ( self.GetViewType() == XY ) ? 1 : 2;
|
||||
rect.x /= self.Scale();
|
||||
rect.y /= self.Scale();
|
||||
rect.w /= self.Scale();
|
||||
rect.h /= self.Scale();
|
||||
rect.x += self.GetOrigin()[nDim1];
|
||||
rect.y += self.GetOrigin()[nDim2];
|
||||
// int nDim1 = ( self.GetViewType() == YZ ) ? 1 : 0;
|
||||
// int nDim2 = ( self.GetViewType() == XY ) ? 1 : 2;
|
||||
// rect.x /= self.Scale();
|
||||
// rect.y /= self.Scale();
|
||||
// rect.w /= self.Scale();
|
||||
// rect.h /= self.Scale();
|
||||
// rect.x += self.GetOrigin()[nDim1];
|
||||
// rect.y += self.GetOrigin()[nDim2];
|
||||
self.m_XORRectangle.set( rect );
|
||||
}
|
||||
}
|
||||
|
||||
gboolean xywnd_button_press( GtkWidget* widget, GdkEventButton* event, XYWnd* xywnd ){
|
||||
if ( event->type == GDK_BUTTON_PRESS ) {
|
||||
if( !xywnd->Active() ){
|
||||
g_pParentWnd->SetActiveXY( xywnd );
|
||||
}
|
||||
|
||||
xywnd->ButtonState_onMouseDown( buttons_for_event_button( event ) );
|
||||
|
||||
|
|
@ -765,9 +767,11 @@ gboolean xywnd_button_release( GtkWidget* widget, GdkEventButton* event, XYWnd*
|
|||
gboolean xywnd_focus_in( GtkWidget* widget, GdkEventFocus* event, XYWnd* xywnd ){
|
||||
if ( event->type == GDK_FOCUS_CHANGE ) {
|
||||
if ( event->in ) {
|
||||
if( !xywnd->Active() ){
|
||||
g_pParentWnd->SetActiveXY( xywnd );
|
||||
}
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
@ -779,6 +783,9 @@ void xywnd_motion( gdouble x, gdouble y, guint state, void* data ){
|
|||
}
|
||||
|
||||
gboolean xywnd_wheel_scroll( GtkWidget* widget, GdkEventScroll* event, XYWnd* xywnd ){
|
||||
if( !xywnd->Active() ){
|
||||
g_pParentWnd->SetActiveXY( xywnd );
|
||||
}
|
||||
if ( event->direction == GDK_SCROLL_UP ) {
|
||||
xywnd->ZoomInWithMouse( (int)event->x, (int)event->y );
|
||||
}
|
||||
|
|
@ -868,7 +875,7 @@ XYWnd::XYWnd() :
|
|||
|
||||
g_signal_connect( G_OBJECT( m_gl_widget ), "button_press_event", G_CALLBACK( xywnd_button_press ), this );
|
||||
g_signal_connect( G_OBJECT( m_gl_widget ), "button_release_event", G_CALLBACK( xywnd_button_release ), this );
|
||||
g_signal_connect( G_OBJECT( m_gl_widget ), "focus_in_event", G_CALLBACK( xywnd_focus_in ), this );
|
||||
g_signal_connect( G_OBJECT( m_gl_widget ), "focus_in_event", G_CALLBACK( xywnd_focus_in ), this ); //works only in floating views layout
|
||||
g_signal_connect( G_OBJECT( m_gl_widget ), "motion_notify_event", G_CALLBACK( DeferredMotion::gtk_motion ), &m_deferred_motion );
|
||||
|
||||
g_signal_connect( G_OBJECT( m_gl_widget ), "scroll_event", G_CALLBACK( xywnd_wheel_scroll ), this );
|
||||
|
|
@ -1590,8 +1597,14 @@ void XYWnd::XY_DrawAxis( void ){
|
|||
const int w = ( m_nWidth / 2 / m_fScale );
|
||||
const int h = ( m_nHeight / 2 / m_fScale );
|
||||
|
||||
const Vector3& colourX = ( m_viewType == YZ ) ? g_xywindow_globals.AxisColorY : g_xywindow_globals.AxisColorX;
|
||||
const Vector3& colourY = ( m_viewType == XY ) ? g_xywindow_globals.AxisColorY : g_xywindow_globals.AxisColorZ;
|
||||
Vector3 colourX = ( m_viewType == YZ ) ? g_xywindow_globals.AxisColorY : g_xywindow_globals.AxisColorX;
|
||||
Vector3 colourY = ( m_viewType == XY ) ? g_xywindow_globals.AxisColorY : g_xywindow_globals.AxisColorZ;
|
||||
if( !Active() ){
|
||||
float grayX = vector3_dot( colourX, Vector3( 0.2989, 0.5870, 0.1140 ) );
|
||||
float grayY = vector3_dot( colourY, Vector3( 0.2989, 0.5870, 0.1140 ) );
|
||||
colourX[0] = colourX[1] = colourX[2] = grayX;
|
||||
colourY[0] = colourY[1] = colourY[2] = grayY;
|
||||
}
|
||||
|
||||
// draw two lines with corresponding axis colors to highlight current view
|
||||
// horizontal line: nDim1 color
|
||||
|
|
@ -1623,6 +1636,105 @@ void XYWnd::XY_DrawAxis( void ){
|
|||
}
|
||||
}
|
||||
|
||||
void XYWnd::RenderActive( void ){
|
||||
if ( glwidget_make_current( m_gl_widget ) != FALSE ) {
|
||||
if ( Map_Valid( g_map ) && ScreenUpdates_Enabled() ) {
|
||||
GlobalOpenGL_debugAssertNoErrors();
|
||||
glDrawBuffer( GL_FRONT );
|
||||
|
||||
if ( g_xywindow_globals_private.show_outline ) {
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glOrtho( 0, m_nWidth, 0, m_nHeight, 0, 1 );
|
||||
|
||||
glMatrixMode( GL_MODELVIEW );
|
||||
glLoadIdentity();
|
||||
|
||||
if( !Active() ){ //sorta erase
|
||||
glColor3fv( vector3_to_array( g_xywindow_globals.color_gridmajor ) );
|
||||
}
|
||||
// four view mode doesn't colorize
|
||||
else if ( g_pParentWnd->CurrentStyle() == MainFrame::eSplit ) {
|
||||
glColor3fv( vector3_to_array( g_xywindow_globals.color_viewname ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
switch ( m_viewType )
|
||||
{
|
||||
case YZ:
|
||||
glColor3fv( vector3_to_array( g_xywindow_globals.AxisColorX ) );
|
||||
break;
|
||||
case XZ:
|
||||
glColor3fv( vector3_to_array( g_xywindow_globals.AxisColorY ) );
|
||||
break;
|
||||
case XY:
|
||||
glColor3fv( vector3_to_array( g_xywindow_globals.AxisColorZ ) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
glBegin( GL_LINE_LOOP );
|
||||
glVertex2f( 0.5, 0.5 );
|
||||
glVertex2f( m_nWidth - 0.5, 1 );
|
||||
glVertex2f( m_nWidth - 0.5, m_nHeight - 0.5 );
|
||||
glVertex2f( 0.5, m_nHeight - 0.5 );
|
||||
glEnd();
|
||||
}
|
||||
// we do this part (the old way) only if show_axis is disabled
|
||||
if ( !g_xywindow_globals_private.show_axis ) {
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glOrtho( 0, m_nWidth, 0, m_nHeight, 0, 1 );
|
||||
|
||||
glMatrixMode( GL_MODELVIEW );
|
||||
glLoadIdentity();
|
||||
|
||||
if ( Active() ) {
|
||||
glColor3fv( vector3_to_array( g_xywindow_globals.color_viewname ) );
|
||||
}
|
||||
else{
|
||||
glColor4fv( vector4_to_array( Vector4( g_xywindow_globals.color_gridtext, 1.0f ) ) );
|
||||
}
|
||||
|
||||
glDisable( GL_BLEND );
|
||||
glRasterPos2f( 35, m_nHeight - 20 );
|
||||
|
||||
GlobalOpenGL().drawString( ViewType_getTitle( m_viewType ) );
|
||||
}
|
||||
else{
|
||||
// clear
|
||||
glViewport( 0, 0, m_nWidth, m_nHeight );
|
||||
// set up viewpoint
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadMatrixf( reinterpret_cast<const float*>( &m_projection ) );
|
||||
|
||||
glMatrixMode( GL_MODELVIEW );
|
||||
glLoadIdentity();
|
||||
glScalef( m_fScale, m_fScale, 1 );
|
||||
int nDim1 = ( m_viewType == YZ ) ? 1 : 0;
|
||||
int nDim2 = ( m_viewType == XY ) ? 1 : 2;
|
||||
glTranslatef( -m_vOrigin[nDim1], -m_vOrigin[nDim2], 0 );
|
||||
|
||||
glDisable( GL_LINE_STIPPLE );
|
||||
glDisableClientState( GL_TEXTURE_COORD_ARRAY );
|
||||
glDisableClientState( GL_NORMAL_ARRAY );
|
||||
glDisableClientState( GL_COLOR_ARRAY );
|
||||
glDisable( GL_TEXTURE_2D );
|
||||
glDisable( GL_LIGHTING );
|
||||
glDisable( GL_COLOR_MATERIAL );
|
||||
glDisable( GL_DEPTH_TEST );
|
||||
glDisable( GL_TEXTURE_1D );
|
||||
glDisable( GL_BLEND );
|
||||
|
||||
XYWnd::XY_DrawAxis();
|
||||
}
|
||||
|
||||
glDrawBuffer( GL_BACK );
|
||||
GlobalOpenGL_debugAssertNoErrors();
|
||||
glwidget_make_current( m_gl_widget );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void XYWnd::XY_DrawBackground( void ){
|
||||
glPushAttrib( GL_ALL_ATTRIB_BITS );
|
||||
|
||||
|
|
@ -1790,17 +1902,20 @@ void XYWnd::XY_DrawGrid( void ) {
|
|||
GlobalOpenGL().drawString( text );
|
||||
}
|
||||
|
||||
}
|
||||
// we do this part (the old way) only if show_axis is disabled
|
||||
if ( !g_xywindow_globals_private.show_axis ) {
|
||||
if ( Active() ) {
|
||||
glColor3fv( vector3_to_array( g_xywindow_globals.color_viewname ) );
|
||||
}
|
||||
else{
|
||||
glColor4fv( vector4_to_array( Vector4( g_xywindow_globals.color_gridtext, 1.0f ) ) );
|
||||
}
|
||||
|
||||
// we do this part (the old way) only if show_axis is disabled
|
||||
if ( !g_xywindow_globals_private.show_axis ) {
|
||||
glRasterPos2f( m_vOrigin[nDim1] - w + 35 / m_fScale, m_vOrigin[nDim2] + h - 20 / m_fScale );
|
||||
|
||||
GlobalOpenGL().drawString( ViewType_getTitle( m_viewType ) );
|
||||
}
|
||||
}
|
||||
|
||||
XYWnd::XY_DrawAxis();
|
||||
|
||||
|
|
@ -2587,21 +2702,6 @@ void XY_ZoomOut(){
|
|||
|
||||
|
||||
|
||||
void ToggleShowCrosshair(){
|
||||
g_bCrossHairs ^= 1;
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
|
||||
void ToggleShowSizeInfo(){
|
||||
g_xywindow_globals_private.m_bSizePaint = !g_xywindow_globals_private.m_bSizePaint;
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
|
||||
void ToggleShowGrid(){
|
||||
g_xywindow_globals_private.d_showgrid = !g_xywindow_globals_private.d_showgrid;
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
|
||||
ToggleShown g_xy_top_shown( true );
|
||||
|
||||
void XY_Top_Shown_Construct( GtkWindow* parent ){
|
||||
|
|
@ -2646,56 +2746,72 @@ EntityClassMenu g_EntityClassMenu;
|
|||
|
||||
|
||||
|
||||
void ShowNamesToggle(){
|
||||
GlobalEntityCreator().setShowNames( !GlobalEntityCreator().getShowNames() );
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
typedef FreeCaller<ShowNamesToggle> ShowNamesToggleCaller;
|
||||
void ShowNamesExport( const BoolImportCallback& importer ){
|
||||
importer( GlobalEntityCreator().getShowNames() );
|
||||
}
|
||||
typedef FreeCaller1<const BoolImportCallback&, ShowNamesExport> ShowNamesExportCaller;
|
||||
|
||||
void ShowAnglesToggle(){
|
||||
GlobalEntityCreator().setShowAngles( !GlobalEntityCreator().getShowAngles() );
|
||||
ShowNamesExportCaller g_show_names_caller;
|
||||
ToggleItem g_show_names( g_show_names_caller );
|
||||
void ShowNamesToggle(){
|
||||
GlobalEntityCreator().setShowNames( !GlobalEntityCreator().getShowNames() );
|
||||
g_show_names.update();
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
typedef FreeCaller<ShowAnglesToggle> ShowAnglesToggleCaller;
|
||||
|
||||
void ShowAnglesExport( const BoolImportCallback& importer ){
|
||||
importer( GlobalEntityCreator().getShowAngles() );
|
||||
}
|
||||
typedef FreeCaller1<const BoolImportCallback&, ShowAnglesExport> ShowAnglesExportCaller;
|
||||
ShowAnglesExportCaller g_show_angles_caller;
|
||||
ToggleItem g_show_angles( g_show_angles_caller );
|
||||
void ShowAnglesToggle(){
|
||||
GlobalEntityCreator().setShowAngles( !GlobalEntityCreator().getShowAngles() );
|
||||
g_show_angles.update();
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
|
||||
BoolExportCaller g_show_blocks_caller( g_xywindow_globals_private.show_blocks );
|
||||
ToggleItem g_show_blocks( g_show_blocks_caller );
|
||||
void ShowBlocksToggle(){
|
||||
g_xywindow_globals_private.show_blocks ^= 1;
|
||||
g_show_blocks.update();
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
typedef FreeCaller<ShowBlocksToggle> ShowBlocksToggleCaller;
|
||||
void ShowBlocksExport( const BoolImportCallback& importer ){
|
||||
importer( g_xywindow_globals_private.show_blocks );
|
||||
}
|
||||
typedef FreeCaller1<const BoolImportCallback&, ShowBlocksExport> ShowBlocksExportCaller;
|
||||
|
||||
BoolExportCaller g_show_coordinates_caller( g_xywindow_globals_private.show_coordinates );
|
||||
ToggleItem g_show_coordinates( g_show_coordinates_caller );
|
||||
void ShowCoordinatesToggle(){
|
||||
g_xywindow_globals_private.show_coordinates ^= 1;
|
||||
g_show_coordinates.update();
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
typedef FreeCaller<ShowCoordinatesToggle> ShowCoordinatesToggleCaller;
|
||||
void ShowCoordinatesExport( const BoolImportCallback& importer ){
|
||||
importer( g_xywindow_globals_private.show_coordinates );
|
||||
}
|
||||
typedef FreeCaller1<const BoolImportCallback&, ShowCoordinatesExport> ShowCoordinatesExportCaller;
|
||||
|
||||
BoolExportCaller g_show_outline_caller( g_xywindow_globals_private.show_outline );
|
||||
ToggleItem g_show_outline( g_show_outline_caller );
|
||||
void ShowOutlineToggle(){
|
||||
g_xywindow_globals_private.show_outline ^= 1;
|
||||
g_show_outline.update();
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
typedef FreeCaller<ShowOutlineToggle> ShowOutlineToggleCaller;
|
||||
void ShowOutlineExport( const BoolImportCallback& importer ){
|
||||
importer( g_xywindow_globals_private.show_outline );
|
||||
}
|
||||
typedef FreeCaller1<const BoolImportCallback&, ShowOutlineExport> ShowOutlineExportCaller;
|
||||
|
||||
BoolExportCaller g_show_axes_caller( g_xywindow_globals_private.show_axis );
|
||||
ToggleItem g_show_axes( g_show_axes_caller );
|
||||
void ShowAxesToggle(){
|
||||
g_xywindow_globals_private.show_axis ^= 1;
|
||||
g_show_axes.update();
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
|
||||
|
||||
BoolExportCaller g_show_workzone_caller( g_xywindow_globals_private.d_show_work );
|
||||
ToggleItem g_show_workzone( g_show_workzone_caller );
|
||||
void ShowWorkzoneToggle(){
|
||||
g_xywindow_globals_private.d_show_work ^= 1;
|
||||
g_show_workzone.update();
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
|
||||
/*
|
||||
void ShowAxesToggle(){
|
||||
g_xywindow_globals_private.show_axis ^= 1;
|
||||
XY_UpdateAllWindows();
|
||||
|
|
@ -2706,52 +2822,58 @@ void ShowAxesExport( const BoolImportCallback& importer ){
|
|||
}
|
||||
typedef FreeCaller1<const BoolImportCallback&, ShowAxesExport> ShowAxesExportCaller;
|
||||
|
||||
void ShowWorkzoneToggle(){
|
||||
g_xywindow_globals_private.d_show_work ^= 1;
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
typedef FreeCaller<ShowWorkzoneToggle> ShowWorkzoneToggleCaller;
|
||||
void ShowWorkzoneExport( const BoolImportCallback& importer ){
|
||||
importer( g_xywindow_globals_private.d_show_work );
|
||||
}
|
||||
typedef FreeCaller1<const BoolImportCallback&, ShowWorkzoneExport> ShowWorkzoneExportCaller;
|
||||
|
||||
ShowNamesExportCaller g_show_names_caller;
|
||||
BoolExportCallback g_show_names_callback( g_show_names_caller );
|
||||
ToggleItem g_show_names( g_show_names_callback );
|
||||
|
||||
ShowAnglesExportCaller g_show_angles_caller;
|
||||
BoolExportCallback g_show_angles_callback( g_show_angles_caller );
|
||||
ToggleItem g_show_angles( g_show_angles_callback );
|
||||
|
||||
ShowBlocksExportCaller g_show_blocks_caller;
|
||||
BoolExportCallback g_show_blocks_callback( g_show_blocks_caller );
|
||||
ToggleItem g_show_blocks( g_show_blocks_callback );
|
||||
|
||||
ShowCoordinatesExportCaller g_show_coordinates_caller;
|
||||
BoolExportCallback g_show_coordinates_callback( g_show_coordinates_caller );
|
||||
ToggleItem g_show_coordinates( g_show_coordinates_callback );
|
||||
|
||||
ShowOutlineExportCaller g_show_outline_caller;
|
||||
BoolExportCallback g_show_outline_callback( g_show_outline_caller );
|
||||
ToggleItem g_show_outline( g_show_outline_callback );
|
||||
|
||||
ShowAxesExportCaller g_show_axes_caller;
|
||||
BoolExportCallback g_show_axes_callback( g_show_axes_caller );
|
||||
ToggleItem g_show_axes( g_show_axes_callback );
|
||||
*/
|
||||
|
||||
/*
|
||||
BoolExportCaller g_texdef_movelock_caller( g_brush_texturelock_enabled );
|
||||
ToggleItem g_texdef_movelock_item( g_texdef_movelock_caller );
|
||||
|
||||
void Texdef_ToggleMoveLock(){
|
||||
g_brush_texturelock_enabled = !g_brush_texturelock_enabled;
|
||||
g_texdef_movelock_item.update();
|
||||
}
|
||||
*/
|
||||
|
||||
BoolExportCaller g_show_size_caller( g_xywindow_globals_private.m_bSizePaint );
|
||||
ToggleItem g_show_size_item( g_show_size_caller );
|
||||
void ToggleShowSizeInfo(){
|
||||
g_xywindow_globals_private.m_bSizePaint = !g_xywindow_globals_private.m_bSizePaint;
|
||||
g_show_size_item.update();
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
|
||||
BoolExportCaller g_show_crosshair_caller( g_bCrossHairs );
|
||||
ToggleItem g_show_crosshair_item( g_show_crosshair_caller );
|
||||
void ToggleShowCrosshair(){
|
||||
g_bCrossHairs ^= 1;
|
||||
g_show_crosshair_item.update();
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
|
||||
BoolExportCaller g_show_grid_caller( g_xywindow_globals_private.d_showgrid );
|
||||
ToggleItem g_show_grid_item( g_show_grid_caller );
|
||||
void ToggleShowGrid(){
|
||||
g_xywindow_globals_private.d_showgrid = !g_xywindow_globals_private.d_showgrid;
|
||||
g_show_grid_item.update();
|
||||
XY_UpdateAllWindows();
|
||||
}
|
||||
|
||||
ShowWorkzoneExportCaller g_show_workzone_caller;
|
||||
BoolExportCallback g_show_workzone_callback( g_show_workzone_caller );
|
||||
ToggleItem g_show_workzone( g_show_workzone_callback );
|
||||
|
||||
void XYShow_registerCommands(){
|
||||
GlobalToggles_insert( "ShowAngles", ShowAnglesToggleCaller(), ToggleItem::AddCallbackCaller( g_show_angles ) );
|
||||
GlobalToggles_insert( "ShowNames", ShowNamesToggleCaller(), ToggleItem::AddCallbackCaller( g_show_names ) );
|
||||
GlobalToggles_insert( "ShowBlocks", ShowBlocksToggleCaller(), ToggleItem::AddCallbackCaller( g_show_blocks ) );
|
||||
GlobalToggles_insert( "ShowCoordinates", ShowCoordinatesToggleCaller(), ToggleItem::AddCallbackCaller( g_show_coordinates ) );
|
||||
GlobalToggles_insert( "ShowWindowOutline", ShowOutlineToggleCaller(), ToggleItem::AddCallbackCaller( g_show_outline ) );
|
||||
GlobalToggles_insert( "ShowAxes", ShowAxesToggleCaller(), ToggleItem::AddCallbackCaller( g_show_axes ) );
|
||||
GlobalToggles_insert( "ShowWorkzone", ShowWorkzoneToggleCaller(), ToggleItem::AddCallbackCaller( g_show_workzone ) );
|
||||
GlobalToggles_insert( "ToggleSizePaint", FreeCaller<ToggleShowSizeInfo>(), ToggleItem::AddCallbackCaller( g_show_size_item ), Accelerator( 'J' ) );
|
||||
GlobalToggles_insert( "ToggleCrosshairs", FreeCaller<ToggleShowCrosshair>(), ToggleItem::AddCallbackCaller( g_show_crosshair_item ), Accelerator( 'X', (GdkModifierType)GDK_SHIFT_MASK ) );
|
||||
GlobalToggles_insert( "ToggleGrid", FreeCaller<ToggleShowGrid>(), ToggleItem::AddCallbackCaller( g_show_grid_item ), Accelerator( '0' ) );
|
||||
|
||||
GlobalToggles_insert( "ShowAngles", FreeCaller<ShowAnglesToggle>(), ToggleItem::AddCallbackCaller( g_show_angles ) );
|
||||
GlobalToggles_insert( "ShowNames", FreeCaller<ShowNamesToggle>(), ToggleItem::AddCallbackCaller( g_show_names ) );
|
||||
GlobalToggles_insert( "ShowBlocks", FreeCaller<ShowBlocksToggle>(), ToggleItem::AddCallbackCaller( g_show_blocks ) );
|
||||
GlobalToggles_insert( "ShowCoordinates", FreeCaller<ShowCoordinatesToggle>(), ToggleItem::AddCallbackCaller( g_show_coordinates ) );
|
||||
GlobalToggles_insert( "ShowWindowOutline", FreeCaller<ShowOutlineToggle>(), ToggleItem::AddCallbackCaller( g_show_outline ) );
|
||||
GlobalToggles_insert( "ShowAxes", FreeCaller<ShowAxesToggle>(), ToggleItem::AddCallbackCaller( g_show_axes ) );
|
||||
GlobalToggles_insert( "ShowWorkzone", FreeCaller<ShowWorkzoneToggle>(), ToggleItem::AddCallbackCaller( g_show_workzone ) );
|
||||
}
|
||||
|
||||
void XYWnd_registerShortcuts(){
|
||||
|
|
@ -2762,8 +2884,8 @@ void XYWnd_registerShortcuts(){
|
|||
|
||||
|
||||
void Orthographic_constructPreferences( PreferencesPage& page ){
|
||||
page.appendCheckBox( "", "Solid selection boxes", g_xywindow_globals.m_bNoStipple );
|
||||
page.appendCheckBox( "", "Display size info", g_xywindow_globals_private.m_bSizePaint );
|
||||
page.appendCheckBox( "", "Solid selection boxes ( no stipple )", g_xywindow_globals.m_bNoStipple );
|
||||
//page.appendCheckBox( "", "Display size info", g_xywindow_globals_private.m_bSizePaint );
|
||||
page.appendCheckBox( "", "Chase mouse during drags", g_xywindow_globals_private.m_bChaseMouse );
|
||||
page.appendCheckBox( "", "Update views on camera move", g_xywindow_globals_private.m_bCamXYUpdate );
|
||||
}
|
||||
|
|
@ -2804,9 +2926,9 @@ typedef ConstReferenceCaller1<ToggleShown, const BoolImportCallback&, ToggleShow
|
|||
|
||||
|
||||
void XYWindow_Construct(){
|
||||
GlobalCommands_insert( "ToggleCrosshairs", FreeCaller<ToggleShowCrosshair>(), Accelerator( 'X', (GdkModifierType)GDK_SHIFT_MASK ) );
|
||||
GlobalCommands_insert( "ToggleSizePaint", FreeCaller<ToggleShowSizeInfo>(), Accelerator( 'J' ) );
|
||||
GlobalCommands_insert( "ToggleGrid", FreeCaller<ToggleShowGrid>(), Accelerator( '0' ) );
|
||||
// GlobalCommands_insert( "ToggleCrosshairs", FreeCaller<ToggleShowCrosshair>(), Accelerator( 'X', (GdkModifierType)GDK_SHIFT_MASK ) );
|
||||
// GlobalCommands_insert( "ToggleSizePaint", FreeCaller<ToggleShowSizeInfo>(), Accelerator( 'J' ) );
|
||||
// GlobalCommands_insert( "ToggleGrid", FreeCaller<ToggleShowGrid>(), Accelerator( '0' ) );
|
||||
|
||||
GlobalToggles_insert( "ToggleView", ToggleShown::ToggleCaller( g_xy_top_shown ), ToggleItem::AddCallbackCaller( g_xy_top_shown.m_item ), Accelerator( 'V', (GdkModifierType)( GDK_SHIFT_MASK | GDK_CONTROL_MASK ) ) );
|
||||
GlobalToggles_insert( "ToggleSideView", ToggleShown::ToggleCaller( g_yz_side_shown ), ToggleItem::AddCallbackCaller( g_yz_side_shown.m_item ) );
|
||||
|
|
@ -2843,7 +2965,9 @@ void XYWindow_Construct(){
|
|||
GlobalPreferenceSystem().registerPreference( "SI_Colors6", Vector3ImportStringCaller( g_xywindow_globals.color_gridblock ), Vector3ExportStringCaller( g_xywindow_globals.color_gridblock ) );
|
||||
GlobalPreferenceSystem().registerPreference( "SI_Colors7", Vector3ImportStringCaller( g_xywindow_globals.color_gridtext ), Vector3ExportStringCaller( g_xywindow_globals.color_gridtext ) );
|
||||
GlobalPreferenceSystem().registerPreference( "SI_Colors8", Vector3ImportStringCaller( g_xywindow_globals.color_brushes ), Vector3ExportStringCaller( g_xywindow_globals.color_brushes ) );
|
||||
GlobalPreferenceSystem().registerPreference( "SI_Colors14", Vector3ImportStringCaller( g_xywindow_globals.color_gridmajor_alt ), Vector3ExportStringCaller( g_xywindow_globals.color_gridmajor_alt ) );
|
||||
GlobalPreferenceSystem().registerPreference( "SI_Colors9", Vector3ImportStringCaller( g_xywindow_globals.color_viewname ), Vector3ExportStringCaller( g_xywindow_globals.color_viewname ) );
|
||||
GlobalPreferenceSystem().registerPreference( "SI_Colors10", Vector3ImportStringCaller( g_xywindow_globals.color_clipper ), Vector3ExportStringCaller( g_xywindow_globals.color_clipper ) );
|
||||
GlobalPreferenceSystem().registerPreference( "SI_Colors11", Vector3ImportStringCaller( g_xywindow_globals.color_selbrushes ), Vector3ExportStringCaller( g_xywindow_globals.color_selbrushes ) );
|
||||
|
||||
|
||||
GlobalPreferenceSystem().registerPreference( "XZVIS", makeBoolStringImportCallback( ToggleShownImportBoolCaller( g_xz_front_shown ) ), makeBoolStringExportCallback( ToggleShownExportBoolCaller( g_xz_front_shown ) ) );
|
||||
|
|
|
|||
|
|
@ -130,8 +130,10 @@ void ZoomIn();
|
|||
void ZoomOut();
|
||||
void ZoomInWithMouse( int pointx, int pointy );
|
||||
|
||||
void RenderActive();
|
||||
void SetActive( bool b ){
|
||||
m_bActive = b;
|
||||
RenderActive();
|
||||
};
|
||||
bool Active(){
|
||||
return m_bActive;
|
||||
|
|
@ -251,8 +253,6 @@ struct xywindow_globals_t
|
|||
Vector3 color_selbrushes;
|
||||
Vector3 color_clipper;
|
||||
Vector3 color_viewname;
|
||||
Vector3 color_gridminor_alt;
|
||||
Vector3 color_gridmajor_alt;
|
||||
Vector3 AxisColorX;
|
||||
Vector3 AxisColorY;
|
||||
Vector3 AxisColorZ;
|
||||
|
|
@ -271,14 +271,12 @@ struct xywindow_globals_t
|
|||
color_selbrushes( 1.f, 0.f, 0.f ),
|
||||
color_clipper( 0.f, 0.f, 1.f ),
|
||||
color_viewname( 0.5f, 0.f, 0.75f ),
|
||||
color_gridminor_alt( 0.f, 0.f, 0.f ),
|
||||
color_gridmajor_alt( 0.f, 0.f, 0.f ),
|
||||
|
||||
AxisColorX( 1.f, 0.f, 0.f ),
|
||||
AxisColorY( 0.f, 1.f, 0.f ),
|
||||
AxisColorZ( 0.f, 0.f, 1.f ),
|
||||
m_bRightClick( true ),
|
||||
m_bNoStipple( false ),
|
||||
m_bNoStipple( true ),
|
||||
m_bImprovedWheelZoom( true ){
|
||||
}
|
||||
|
||||
|
|
|
|||
BIN
setup/data/tools/bitmaps/f-hide.png
Normal file
BIN
setup/data/tools/bitmaps/f-hide.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 337 B |
BIN
setup/data/tools/bitmaps/f-region.png
Normal file
BIN
setup/data/tools/bitmaps/f-region.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 365 B |
Loading…
Reference in New Issue
Block a user