create_menu_item_with_mnemonic( menu, "Find brush...", "FindBrush" );
create_menu_item_with_mnemonic( menu, "Map Info...", "MapInfo" );
// http://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=394
-// create_menu_item_with_mnemonic(menu, "_Print XY View", FreeCaller<void(), WXY_Print>());
- create_menu_item_with_mnemonic( menu, "_Background select", makeCallbackF(WXY_BackgroundSelect) );
+// create_menu_item_with_mnemonic(menu, "_Print XY View", makeCallbackF( WXY_Print ));
+ create_menu_item_with_mnemonic( menu, "_Background image...", makeCallbackF(WXY_BackgroundSelect) );
create_menu_item_with_mnemonic( menu, "Fullscreen", "Fullscreen" );
+ create_menu_item_with_mnemonic( menu, "Maximize view", "MaximizeView" );
return misc_menu_item;
}
/* workaround for gtk 2.24 issue: not displayed glwidget after toggle */
g_object_set_data( G_OBJECT( GroupDialog_getWindow() ), "glwidget", TextureBrowser_getGLWidget() );
#endif
-
}
+ // FIXME: find a way to do it with newer syntax
+ // m_vSplit = 0;
+ // m_hSplit = 0;
+ // m_vSplit2 = 0;
+
GroupDialog_show();
}
else // 4 way
ui::Widget xz = m_pXZWnd->GetWidget();
- auto split = create_split_views( camera, yz, xy, xz );
- vbox.pack_start( split, TRUE, TRUE, 0 );
+ m_hSplit = create_split_views( camera, yz, xy, xz, m_vSplit, m_vSplit2 );
+ vbox.pack_start( m_hSplit, TRUE, TRUE, 0 );
{
auto frame = create_framed_widget( TextureBrowser_constructWindow( GroupDialog_getWindow() ) );
}
}
+class MaximizeView
+{
+public:
+ MaximizeView(): m_maximized( false ){
+ }
+ void toggle(){
+ return m_maximized ? restore() : maximize();
+ }
+private:
+ bool m_maximized;
+ int m_vSplitPos;
+ int m_vSplit2Pos;
+ int m_hSplitPos;
+
+ void restore(){
+ m_maximized = false;
+ gtk_paned_set_position( GTK_PANED( g_pParentWnd->m_vSplit ), m_vSplitPos );
+ gtk_paned_set_position( GTK_PANED( g_pParentWnd->m_vSplit2 ), m_vSplit2Pos );
+ gtk_paned_set_position( GTK_PANED( g_pParentWnd->m_hSplit ), m_hSplitPos );
+ }
+
+ void maximize(){
+ m_maximized = true;
+ m_vSplitPos = gtk_paned_get_position( GTK_PANED( g_pParentWnd->m_vSplit ) );
+ m_vSplit2Pos = gtk_paned_get_position( GTK_PANED( g_pParentWnd->m_vSplit2 ) );
+ m_hSplitPos = gtk_paned_get_position( GTK_PANED( g_pParentWnd->m_hSplit ) );
+
+ int vSplitX, vSplitY, vSplit2X, vSplit2Y, hSplitX, hSplitY;
+ gdk_window_get_origin( GTK_WIDGET( g_pParentWnd->m_vSplit )->window, &vSplitX, &vSplitY );
+ gdk_window_get_origin( GTK_WIDGET( g_pParentWnd->m_vSplit2 )->window, &vSplit2X, &vSplit2Y );
+ gdk_window_get_origin( GTK_WIDGET( g_pParentWnd->m_hSplit )->window, &hSplitX, &hSplitY );
+
+ vSplitY += m_vSplitPos;
+ vSplit2Y += m_vSplit2Pos;
+ hSplitX += m_hSplitPos;
+
+ int cur_x, cur_y;
+ Sys_GetCursorPos( MainFrame_getWindow(), &cur_x, &cur_y );
+
+ if( cur_x > hSplitX ){
+ gtk_paned_set_position( GTK_PANED( g_pParentWnd->m_hSplit ), 0 );
+ }
+ else{
+ gtk_paned_set_position( GTK_PANED( g_pParentWnd->m_hSplit ), 9999 );
+ }
+ if( cur_y > vSplitY ){
+ gtk_paned_set_position( GTK_PANED( g_pParentWnd->m_vSplit ), 0 );
+ }
+ else{
+ gtk_paned_set_position( GTK_PANED( g_pParentWnd->m_vSplit ), 9999 );
+ }
+ if( cur_y > vSplit2Y ){
+ gtk_paned_set_position( GTK_PANED( g_pParentWnd->m_vSplit2 ), 0 );
+ }
+ else{
+ gtk_paned_set_position( GTK_PANED( g_pParentWnd->m_vSplit2 ), 9999 );
+ }
+ }
+};
+
+MaximizeView g_maximizeview;
+
+void Maximize_View(){
+ if( g_pParentWnd != 0 && g_pParentWnd->m_vSplit != 0 && g_pParentWnd->m_vSplit2 != 0 && g_pParentWnd->m_hSplit != 0 )
+ g_maximizeview.toggle();
+}
+
#include "preferencesystem.h"
#include "stringio.h"
GlobalCommands_insert( "ChooseOrthoViewNameColor", makeCallback( g_ColoursMenu.m_viewname ) );
GlobalCommands_insert( "Fullscreen", makeCallbackF( MainFrame_toggleFullscreen ), Accelerator( GDK_F11 ) );
+ GlobalCommands_insert( "MaximizeView", makeCallbackF( Maximize_View ), Accelerator( GDK_F12 ) );
GlobalCommands_insert( "CSGSubtract", makeCallbackF(CSG_Subtract), Accelerator( 'U', (GdkModifierType)GDK_SHIFT_MASK ) );