Radiant:
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:
@@ -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 );
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user