binds...
	* m1 + shift drag: snapped modes of manipulators:
		scale free: scale two axes synchronously
	* m2 in entities creation menu: change classname; ctrl + m2: change classname, don't close menu
	* ctrl + m1 in entities creation menu: create entity, don't close menu (+offset every next entity by 8u or gridsize, if > 8)

misc...
	* fix: laggy selectors, manipulators in mlook mode
	* scale free->snapped mode: constrain to two axes, most perpendicular to view direction (i.e. works for two axes in 3d too)
	* scale free->snapped mode: use min move delta for scale (was max = hard to scale down); fix ZY projection case
	* fix: pointfile was considered as shown, when trying to load missing one
	* entity inspector->EntityProperties treeview: Tab keypress = focus Key field
	* 2x2 layout: allow gtk to handle separators positions; fixes: unmaximize wnd, maximize = horizontal separators > center
		fixes: unmaximize wnd = not updated views glwidget positions on some systems
	* fix: paint selector, selecting occluded faces
	* camera->field of view option
	* wider Texture Gamma preference range
	* wad games->texbro treeview: do not group names, using underscore; fixes crash on loading parent; fixes mess if path contains underscore
	* fix: do not quit freelook on autosaving
	* entity creation menu has ability to be 'tearoff'
	* wad games: fix TextureBrowser_ShowDirectory crash on loading common dir (can cfg to load .wad), on loading containing dir (do nothing)
	* wad games: fix crash on selecting a shader (not a plain texture) in tex bro
	* wad games: more reliable filterbar texturing defaults
	* shader for 'caulk new brushes' and 'clipper uses caulk' options is optional via 'shader_caulk' option in .game
This commit is contained in:
Garux
2017-08-02 09:24:32 +03:00
parent 471fca65b6
commit cba5583d23
15 changed files with 275 additions and 138 deletions

View File

@@ -26,7 +26,7 @@
#include "frame.h"
#if 0
class PanedState
{
public:
@@ -60,37 +60,44 @@ gboolean paned_position( GtkWidget* widget, gpointer dummy, PanedState* paned ){
PanedState g_hpaned = { 0.5f, -1, };
PanedState g_vpaned1 = { 0.5f, -1, };
PanedState g_vpaned2 = { 0.5f, -1, };
#endif
GtkWidget* create_split_views( GtkWidget* topleft, GtkWidget* botleft, GtkWidget* topright, GtkWidget* botright, GtkWidget*& vsplit1, GtkWidget*& vsplit2 ){
GtkHPaned* hsplit = GTK_HPANED( gtk_hpaned_new() );
gtk_widget_show( GTK_WIDGET( hsplit ) );
g_signal_connect( G_OBJECT( hsplit ), "size_allocate", G_CALLBACK( hpaned_allocate ), &g_hpaned );
g_signal_connect( G_OBJECT( hsplit ), "notify::position", G_CALLBACK( paned_position ), &g_hpaned );
//g_signal_connect( G_OBJECT( hsplit ), "size_allocate", G_CALLBACK( hpaned_allocate ), &g_hpaned );
//g_signal_connect( G_OBJECT( hsplit ), "notify::position", G_CALLBACK( paned_position ), &g_hpaned );
{
GtkVPaned* vsplit = GTK_VPANED( gtk_vpaned_new() );
vsplit1 = GTK_WIDGET( vsplit );
gtk_paned_add1( GTK_PANED( hsplit ), GTK_WIDGET( vsplit ) );
//gtk_paned_add1( GTK_PANED( hsplit ), GTK_WIDGET( vsplit ) );
gtk_paned_pack1( GTK_PANED( hsplit ), GTK_WIDGET( vsplit ), TRUE, TRUE );
gtk_widget_show( GTK_WIDGET( vsplit ) );
g_signal_connect( G_OBJECT( vsplit ), "size_allocate", G_CALLBACK( vpaned_allocate ), &g_vpaned1 );
g_signal_connect( G_OBJECT( vsplit ), "notify::position", G_CALLBACK( paned_position ), &g_vpaned1 );
//g_signal_connect( G_OBJECT( vsplit ), "size_allocate", G_CALLBACK( vpaned_allocate ), &g_vpaned1 );
//g_signal_connect( G_OBJECT( vsplit ), "notify::position", G_CALLBACK( paned_position ), &g_vpaned1 );
gtk_paned_add1( GTK_PANED( vsplit ), GTK_WIDGET( create_framed_widget( topleft ) ) );
gtk_paned_add2( GTK_PANED( vsplit ), GTK_WIDGET( create_framed_widget( botleft ) ) );
//gtk_paned_add1( GTK_PANED( vsplit ), GTK_WIDGET( create_framed_widget( topleft ) ) );
//gtk_paned_add2( GTK_PANED( vsplit ), GTK_WIDGET( create_framed_widget( botleft ) ) );
gtk_paned_pack1( GTK_PANED( vsplit ), GTK_WIDGET( create_framed_widget( topleft ) ), TRUE, TRUE );
gtk_paned_pack2( GTK_PANED( vsplit ), GTK_WIDGET( create_framed_widget( botleft ) ), TRUE, TRUE );
}
{
GtkVPaned* vsplit = GTK_VPANED( gtk_vpaned_new() );
vsplit2 = GTK_WIDGET( vsplit );
gtk_paned_add2( GTK_PANED( hsplit ), GTK_WIDGET( vsplit ) );
//gtk_paned_add2( GTK_PANED( hsplit ), GTK_WIDGET( vsplit ) );
gtk_paned_pack2( GTK_PANED( hsplit ), GTK_WIDGET( vsplit ), TRUE, TRUE );
gtk_widget_show( GTK_WIDGET( vsplit ) );
g_signal_connect( G_OBJECT( vsplit ), "size_allocate", G_CALLBACK( vpaned_allocate ), &g_vpaned2 );
g_signal_connect( G_OBJECT( vsplit ), "notify::position", G_CALLBACK( paned_position ), &g_vpaned2 );
//g_signal_connect( G_OBJECT( vsplit ), "size_allocate", G_CALLBACK( vpaned_allocate ), &g_vpaned2 );
//g_signal_connect( G_OBJECT( vsplit ), "notify::position", G_CALLBACK( paned_position ), &g_vpaned2 );
gtk_paned_add1( GTK_PANED( vsplit ), GTK_WIDGET( create_framed_widget( topright ) ) );
gtk_paned_add2( GTK_PANED( vsplit ), GTK_WIDGET( create_framed_widget( botright ) ) );
//gtk_paned_add1( GTK_PANED( vsplit ), GTK_WIDGET( create_framed_widget( topright ) ) );
//gtk_paned_add2( GTK_PANED( vsplit ), GTK_WIDGET( create_framed_widget( botright ) ) );
gtk_paned_pack1( GTK_PANED( vsplit ), GTK_WIDGET( create_framed_widget( topright ) ), TRUE, TRUE );
gtk_paned_pack2( GTK_PANED( vsplit ), GTK_WIDGET( create_framed_widget( botright ) ), TRUE, TRUE );
}
return GTK_WIDGET( hsplit );
}

View File

@@ -23,7 +23,6 @@
#define INCLUDED_GTKUTIL_PANED_H
typedef struct _GtkWidget GtkWidget;
typedef struct _GtkHPaned GtkHPaned;
GtkWidget* create_split_views( GtkWidget* topleft, GtkWidget* botleft, GtkWidget* topright, GtkWidget* botright, GtkWidget*& vsplit1, GtkWidget*& vsplit2 );
#endif