mirror of
https://github.com/TTimo/GtkRadiant.git
synced 2025-03-06 17:31:07 +00:00
Merge branch 'master' of https://github.com/TTimo/GtkRadiant into TexDirList
# Conflicts: # radiant/preferences.cpp
This commit is contained in:
commit
1294c35880
33 changed files with 365 additions and 216 deletions
|
@ -342,7 +342,8 @@ void InitBackgroundDialog(){
|
||||||
pPage = new CBackgroundDialogPage( YZ );
|
pPage = new CBackgroundDialogPage( YZ );
|
||||||
pPage->Append( pNotebook );
|
pPage->Append( pNotebook );
|
||||||
|
|
||||||
vbox = gtk_hbox_new( TRUE, 5 );
|
vbox = gtk_hbox_new( FALSE, 5 );
|
||||||
|
gtk_box_set_homogeneous( GTK_BOX( vbox ), TRUE );
|
||||||
gtk_container_add( GTK_CONTAINER( content_area ), vbox );
|
gtk_container_add( GTK_CONTAINER( content_area ), vbox );
|
||||||
gtk_widget_show( vbox );
|
gtk_widget_show( vbox );
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
|
|
||||||
#define CMD_SEP "-"
|
#define CMD_SEP "-"
|
||||||
#define CMD_CONFIG "Configure..."
|
#define CMD_CONFIG "Configure..."
|
||||||
#define CMD_ABOUT "About..."
|
#define CMD_ABOUT "About"
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
// Globals
|
// Globals
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ _QEREntityTable g_EntityTable;
|
||||||
const char* PLUGIN_NAME = "bobToolz";
|
const char* PLUGIN_NAME = "bobToolz";
|
||||||
|
|
||||||
// commands in the menu
|
// commands in the menu
|
||||||
static const char* PLUGIN_COMMANDS = "About...,-,Reset Textures...,PitOMatic,-,Vis Viewer,Brush Cleanup,Polygon Builder,Caulk Selection,-,Tree Planter,Drop Entity,Plot Splines,-,Merge Patches,Split patches,Turn edge";
|
static const char* PLUGIN_COMMANDS = "About,-,Reset Textures...,PitOMatic,-,Vis Viewer,Brush Cleanup,Polygon Builder,Caulk Selection,-,Tree Planter,Drop Entity,Plot Splines,-,Merge Patches,Split patches,Turn edge";
|
||||||
|
|
||||||
// globals
|
// globals
|
||||||
GtkWidget *g_pRadiantWnd = NULL;
|
GtkWidget *g_pRadiantWnd = NULL;
|
||||||
|
@ -103,7 +103,7 @@ extern "C" void QERPlug_Dispatch( const char *p, vec3_t vMin, vec3_t vMax, bool
|
||||||
else if ( !stricmp( p, "vis viewer" ) ) {
|
else if ( !stricmp( p, "vis viewer" ) ) {
|
||||||
DoVisAnalyse();
|
DoVisAnalyse();
|
||||||
}
|
}
|
||||||
else if ( !stricmp( p, "about..." ) ) {
|
else if ( !stricmp( p, "About" ) ) {
|
||||||
DoMessageBox( PLUGIN_ABOUT, "About", MB_OK );
|
DoMessageBox( PLUGIN_ABOUT, "About", MB_OK );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,13 +33,13 @@ typedef struct {
|
||||||
GtkWidget *editTexOld, *editTexNew;
|
GtkWidget *editTexOld, *editTexNew;
|
||||||
|
|
||||||
GtkWidget *cbScaleHor, *cbScaleVert;
|
GtkWidget *cbScaleHor, *cbScaleVert;
|
||||||
GtkWidget *editScaleHor, *editScaleVert;
|
GtkWidget *spinScaleHor, *spinScaleVert;
|
||||||
|
|
||||||
GtkWidget *cbShiftHor, *cbShiftVert;
|
GtkWidget *cbShiftHor, *cbShiftVert;
|
||||||
GtkWidget *editShiftHor, *editShiftVert;
|
GtkWidget *spinShiftHor, *spinShiftVert;
|
||||||
|
|
||||||
GtkWidget *cbRotation;
|
GtkWidget *cbRotation;
|
||||||
GtkWidget *editRotation;
|
GtkWidget *spinRotation;
|
||||||
}dlg_texReset_t;
|
}dlg_texReset_t;
|
||||||
|
|
||||||
dlg_texReset_t dlgTexReset;
|
dlg_texReset_t dlgTexReset;
|
||||||
|
@ -60,19 +60,19 @@ void Update_TextureReseter(){
|
||||||
gtk_editable_set_editable( GTK_EDITABLE( dlgTexReset.editTexOld ), check );
|
gtk_editable_set_editable( GTK_EDITABLE( dlgTexReset.editTexOld ), check );
|
||||||
|
|
||||||
check = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbScaleHor ) );
|
check = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbScaleHor ) );
|
||||||
gtk_editable_set_editable( GTK_EDITABLE( dlgTexReset.editScaleHor ), check );
|
gtk_editable_set_editable( GTK_EDITABLE( dlgTexReset.spinScaleHor ), check );
|
||||||
|
|
||||||
check = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbScaleVert ) );
|
check = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbScaleVert ) );
|
||||||
gtk_editable_set_editable( GTK_EDITABLE( dlgTexReset.editScaleVert ), check );
|
gtk_editable_set_editable( GTK_EDITABLE( dlgTexReset.spinScaleVert ), check );
|
||||||
|
|
||||||
check = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbShiftHor ) );
|
check = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbShiftHor ) );
|
||||||
gtk_editable_set_editable( GTK_EDITABLE( dlgTexReset.editShiftHor ), check );
|
gtk_editable_set_editable( GTK_EDITABLE( dlgTexReset.spinShiftHor ), check );
|
||||||
|
|
||||||
check = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbShiftVert ) );
|
check = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbShiftVert ) );
|
||||||
gtk_editable_set_editable( GTK_EDITABLE( dlgTexReset.editShiftVert ), check );
|
gtk_editable_set_editable( GTK_EDITABLE( dlgTexReset.spinShiftVert ), check );
|
||||||
|
|
||||||
check = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbRotation ) );
|
check = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbRotation ) );
|
||||||
gtk_editable_set_editable( GTK_EDITABLE( dlgTexReset.editRotation ), check );
|
gtk_editable_set_editable( GTK_EDITABLE( dlgTexReset.spinRotation ), check );
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dialog_button_callback( GtkWidget *widget, gpointer data ){
|
static void dialog_button_callback( GtkWidget *widget, gpointer data ){
|
||||||
|
@ -1287,7 +1287,8 @@ int DoResetTextureBox( ResetTextureRS* rs ){
|
||||||
|
|
||||||
content_area = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) );
|
content_area = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) );
|
||||||
|
|
||||||
vbox = gtk_vbox_new( TRUE, 5 );
|
vbox = gtk_vbox_new( FALSE, 5 );
|
||||||
|
gtk_box_set_homogeneous( GTK_BOX( vbox ), TRUE );
|
||||||
gtk_container_add( GTK_CONTAINER( content_area ), vbox );
|
gtk_container_add( GTK_CONTAINER( content_area ), vbox );
|
||||||
gtk_widget_show( vbox );
|
gtk_widget_show( vbox );
|
||||||
|
|
||||||
|
@ -1320,7 +1321,7 @@ int DoResetTextureBox( ResetTextureRS* rs ){
|
||||||
gtk_box_pack_start( GTK_BOX( vbox ), frame, FALSE, TRUE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox ), frame, FALSE, TRUE, 0 );
|
||||||
gtk_widget_show( frame );
|
gtk_widget_show( frame );
|
||||||
|
|
||||||
table = gtk_table_new( 2, 3, TRUE );
|
table = gtk_table_new( 2, 3, FALSE );
|
||||||
|
|
||||||
gtk_container_add( GTK_CONTAINER( frame ), table );
|
gtk_container_add( GTK_CONTAINER( frame ), table );
|
||||||
gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
|
gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
|
||||||
|
@ -1348,7 +1349,7 @@ int DoResetTextureBox( ResetTextureRS* rs ){
|
||||||
gtk_entry_set_max_length( GTK_ENTRY( dlgTexReset.editTexOld ), 256 );
|
gtk_entry_set_max_length( GTK_ENTRY( dlgTexReset.editTexOld ), 256 );
|
||||||
gtk_entry_set_text( GTK_ENTRY( dlgTexReset.editTexOld ), rs->textureName );
|
gtk_entry_set_text( GTK_ENTRY( dlgTexReset.editTexOld ), rs->textureName );
|
||||||
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.editTexOld, 2, 3, 0, 1,
|
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.editTexOld, 2, 3, 0, 1,
|
||||||
(GtkAttachOptions) ( GTK_FILL ),
|
(GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
|
||||||
(GtkAttachOptions) ( 0 ), 0, 0 );
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( dlgTexReset.editTexOld );
|
gtk_widget_show( dlgTexReset.editTexOld );
|
||||||
|
|
||||||
|
@ -1363,7 +1364,7 @@ int DoResetTextureBox( ResetTextureRS* rs ){
|
||||||
gtk_entry_set_max_length( GTK_ENTRY( dlgTexReset.editTexNew ), 256 );
|
gtk_entry_set_max_length( GTK_ENTRY( dlgTexReset.editTexNew ), 256 );
|
||||||
gtk_entry_set_text( GTK_ENTRY( dlgTexReset.editTexNew ), rs->textureName );
|
gtk_entry_set_text( GTK_ENTRY( dlgTexReset.editTexNew ), rs->textureName );
|
||||||
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.editTexNew, 2, 3, 1, 2,
|
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.editTexNew, 2, 3, 1, 2,
|
||||||
(GtkAttachOptions) ( GTK_FILL ),
|
(GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
|
||||||
(GtkAttachOptions) ( 0 ), 0, 0 );
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( dlgTexReset.editTexNew );
|
gtk_widget_show( dlgTexReset.editTexNew );
|
||||||
|
|
||||||
|
@ -1373,7 +1374,7 @@ int DoResetTextureBox( ResetTextureRS* rs ){
|
||||||
gtk_box_pack_start( GTK_BOX( vbox ), frame, FALSE, TRUE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox ), frame, FALSE, TRUE, 0 );
|
||||||
gtk_widget_show( frame );
|
gtk_widget_show( frame );
|
||||||
|
|
||||||
table = gtk_table_new( 2, 3, TRUE );
|
table = gtk_table_new( 2, 3, FALSE );
|
||||||
|
|
||||||
gtk_container_add( GTK_CONTAINER( frame ), table );
|
gtk_container_add( GTK_CONTAINER( frame ), table );
|
||||||
gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
|
gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
|
||||||
|
@ -1397,13 +1398,14 @@ int DoResetTextureBox( ResetTextureRS* rs ){
|
||||||
gtk_misc_set_alignment( GTK_MISC( w ), 0.0, 0.5 );
|
gtk_misc_set_alignment( GTK_MISC( w ), 0.0, 0.5 );
|
||||||
gtk_widget_show( w );
|
gtk_widget_show( w );
|
||||||
|
|
||||||
dlgTexReset.editScaleHor = gtk_entry_new();
|
|
||||||
gtk_entry_set_max_length( GTK_ENTRY( dlgTexReset.editScaleHor ), 256 );
|
dlgTexReset.spinScaleHor = gtk_spin_button_new( GTK_ADJUSTMENT( gtk_adjustment_new( 0.5, 0, 65535, 0.1, 1, 0 ) ), 0.1, 1 );
|
||||||
gtk_entry_set_text( GTK_ENTRY( dlgTexReset.editScaleHor ), "0.5" );
|
gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( dlgTexReset.spinScaleHor ), TRUE );
|
||||||
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.editScaleHor, 2, 3, 0, 1,
|
gtk_entry_set_alignment( GTK_ENTRY( dlgTexReset.spinScaleHor ), 1.0 ); //right align numbers
|
||||||
|
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.spinScaleHor, 2, 3, 0, 1,
|
||||||
(GtkAttachOptions) ( GTK_FILL ),
|
(GtkAttachOptions) ( GTK_FILL ),
|
||||||
(GtkAttachOptions) ( 0 ), 0, 0 );
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( dlgTexReset.editScaleHor );
|
gtk_widget_show( dlgTexReset.spinScaleHor );
|
||||||
|
|
||||||
|
|
||||||
dlgTexReset.cbScaleVert = gtk_check_button_new_with_label( _( "Enabled" ) );
|
dlgTexReset.cbScaleVert = gtk_check_button_new_with_label( _( "Enabled" ) );
|
||||||
|
@ -1420,13 +1422,13 @@ int DoResetTextureBox( ResetTextureRS* rs ){
|
||||||
gtk_misc_set_alignment( GTK_MISC( w ), 0.0, 0.5 );
|
gtk_misc_set_alignment( GTK_MISC( w ), 0.0, 0.5 );
|
||||||
gtk_widget_show( w );
|
gtk_widget_show( w );
|
||||||
|
|
||||||
dlgTexReset.editScaleVert = gtk_entry_new();
|
dlgTexReset.spinScaleVert = gtk_spin_button_new( GTK_ADJUSTMENT( gtk_adjustment_new( 0.5, 0, 65535, 0.1, 1, 0 ) ), 0.1, 1 );
|
||||||
gtk_entry_set_max_length( GTK_ENTRY( dlgTexReset.editScaleVert ), 256 );
|
gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( dlgTexReset.spinScaleVert ), TRUE );
|
||||||
gtk_entry_set_text( GTK_ENTRY( dlgTexReset.editScaleVert ), "0.5" );
|
gtk_entry_set_alignment( GTK_ENTRY( dlgTexReset.spinScaleVert ), 1.0 ); //right align numbers
|
||||||
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.editScaleVert, 2, 3, 1, 2,
|
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.spinScaleVert, 2, 3, 1, 2,
|
||||||
(GtkAttachOptions) ( GTK_FILL ),
|
(GtkAttachOptions) ( GTK_FILL ),
|
||||||
(GtkAttachOptions) ( 0 ), 0, 0 );
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( dlgTexReset.editScaleVert );
|
gtk_widget_show( dlgTexReset.spinScaleVert );
|
||||||
|
|
||||||
// ---- /frame ----
|
// ---- /frame ----
|
||||||
|
|
||||||
|
@ -1434,7 +1436,7 @@ int DoResetTextureBox( ResetTextureRS* rs ){
|
||||||
gtk_box_pack_start( GTK_BOX( vbox ), frame, FALSE, TRUE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox ), frame, FALSE, TRUE, 0 );
|
||||||
gtk_widget_show( frame );
|
gtk_widget_show( frame );
|
||||||
|
|
||||||
table = gtk_table_new( 2, 3, TRUE );
|
table = gtk_table_new( 2, 3, FALSE );
|
||||||
|
|
||||||
gtk_container_add( GTK_CONTAINER( frame ), table );
|
gtk_container_add( GTK_CONTAINER( frame ), table );
|
||||||
gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
|
gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
|
||||||
|
@ -1458,13 +1460,13 @@ int DoResetTextureBox( ResetTextureRS* rs ){
|
||||||
gtk_misc_set_alignment( GTK_MISC( w ), 0.0, 0.5 );
|
gtk_misc_set_alignment( GTK_MISC( w ), 0.0, 0.5 );
|
||||||
gtk_widget_show( w );
|
gtk_widget_show( w );
|
||||||
|
|
||||||
dlgTexReset.editShiftHor = gtk_entry_new();
|
dlgTexReset.spinShiftHor = gtk_spin_button_new( GTK_ADJUSTMENT( gtk_adjustment_new( 0, 0, 65535, 0.1, 1, 0 ) ), 0.1, 1 );
|
||||||
gtk_entry_set_max_length( GTK_ENTRY( dlgTexReset.editShiftHor ), 256 );
|
gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( dlgTexReset.spinShiftHor ), TRUE );
|
||||||
gtk_entry_set_text( GTK_ENTRY( dlgTexReset.editShiftHor ), "0" );
|
gtk_entry_set_alignment( GTK_ENTRY( dlgTexReset.spinShiftHor ), 1.0 ); //right align numbers
|
||||||
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.editShiftHor, 2, 3, 0, 1,
|
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.spinShiftHor, 2, 3, 0, 1,
|
||||||
(GtkAttachOptions) ( GTK_FILL ),
|
(GtkAttachOptions) ( GTK_FILL ),
|
||||||
(GtkAttachOptions) ( 0 ), 0, 0 );
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( dlgTexReset.editShiftHor );
|
gtk_widget_show( dlgTexReset.spinShiftHor );
|
||||||
|
|
||||||
|
|
||||||
dlgTexReset.cbShiftVert = gtk_check_button_new_with_label( _( "Enabled" ) );
|
dlgTexReset.cbShiftVert = gtk_check_button_new_with_label( _( "Enabled" ) );
|
||||||
|
@ -1481,13 +1483,13 @@ int DoResetTextureBox( ResetTextureRS* rs ){
|
||||||
gtk_misc_set_alignment( GTK_MISC( w ), 0.0, 0.5 );
|
gtk_misc_set_alignment( GTK_MISC( w ), 0.0, 0.5 );
|
||||||
gtk_widget_show( w );
|
gtk_widget_show( w );
|
||||||
|
|
||||||
dlgTexReset.editShiftVert = gtk_entry_new();
|
dlgTexReset.spinShiftVert = gtk_spin_button_new( GTK_ADJUSTMENT( gtk_adjustment_new( 0, 0, 65535, 0.1, 1, 0 ) ), 0.1, 1 );
|
||||||
gtk_entry_set_max_length( GTK_ENTRY( dlgTexReset.editShiftVert ), 256 );
|
gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( dlgTexReset.spinShiftVert ), TRUE );
|
||||||
gtk_entry_set_text( GTK_ENTRY( dlgTexReset.editShiftVert ), "0" );
|
gtk_entry_set_alignment( GTK_ENTRY( dlgTexReset.spinShiftVert ), 1.0 ); //right align numbers
|
||||||
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.editShiftVert, 2, 3, 1, 2,
|
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.spinShiftVert, 2, 3, 1, 2,
|
||||||
(GtkAttachOptions) ( GTK_FILL ),
|
(GtkAttachOptions) ( GTK_FILL ),
|
||||||
(GtkAttachOptions) ( 0 ), 0, 0 );
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( dlgTexReset.editShiftVert );
|
gtk_widget_show( dlgTexReset.spinShiftVert );
|
||||||
|
|
||||||
// ---- /frame ----
|
// ---- /frame ----
|
||||||
|
|
||||||
|
@ -1495,7 +1497,7 @@ int DoResetTextureBox( ResetTextureRS* rs ){
|
||||||
gtk_box_pack_start( GTK_BOX( vbox ), frame, FALSE, TRUE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox ), frame, FALSE, TRUE, 0 );
|
||||||
gtk_widget_show( frame );
|
gtk_widget_show( frame );
|
||||||
|
|
||||||
table = gtk_table_new( 1, 3, TRUE );
|
table = gtk_table_new( 1, 3, FALSE );
|
||||||
gtk_container_add( GTK_CONTAINER( frame ), table );
|
gtk_container_add( GTK_CONTAINER( frame ), table );
|
||||||
gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
|
gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
|
||||||
gtk_table_set_col_spacings( GTK_TABLE( table ), 5 );
|
gtk_table_set_col_spacings( GTK_TABLE( table ), 5 );
|
||||||
|
@ -1517,13 +1519,13 @@ int DoResetTextureBox( ResetTextureRS* rs ){
|
||||||
gtk_misc_set_alignment( GTK_MISC( w ), 0.0, 0.5 );
|
gtk_misc_set_alignment( GTK_MISC( w ), 0.0, 0.5 );
|
||||||
gtk_widget_show( w );
|
gtk_widget_show( w );
|
||||||
|
|
||||||
dlgTexReset.editRotation = gtk_entry_new();
|
dlgTexReset.spinRotation = gtk_spin_button_new( GTK_ADJUSTMENT( gtk_adjustment_new( 0, -360, 360, 1, 90, 0 ) ), 1, 1 );
|
||||||
gtk_entry_set_max_length( GTK_ENTRY( dlgTexReset.editRotation ), 256 );
|
gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( dlgTexReset.spinRotation ), TRUE );
|
||||||
gtk_entry_set_text( GTK_ENTRY( dlgTexReset.editRotation ), "0" );
|
gtk_entry_set_alignment( GTK_ENTRY( dlgTexReset.spinRotation ), 1.0 ); //right align numbers
|
||||||
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.editRotation, 2, 3, 0, 1,
|
gtk_table_attach( GTK_TABLE( table ), dlgTexReset.spinRotation, 2, 3, 0, 1,
|
||||||
(GtkAttachOptions) ( GTK_FILL ),
|
(GtkAttachOptions) ( GTK_FILL ),
|
||||||
(GtkAttachOptions) ( 0 ), 0, 0 );
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( dlgTexReset.editRotation );
|
gtk_widget_show( dlgTexReset.spinRotation );
|
||||||
|
|
||||||
// ---- /frame ----
|
// ---- /frame ----
|
||||||
|
|
||||||
|
@ -1553,37 +1555,27 @@ int DoResetTextureBox( ResetTextureRS* rs ){
|
||||||
if ( response_id != GTK_RESPONSE_CANCEL ) {
|
if ( response_id != GTK_RESPONSE_CANCEL ) {
|
||||||
rs->bResetRotation = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbRotation ) );
|
rs->bResetRotation = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbRotation ) );
|
||||||
if ( rs->bResetRotation ) {
|
if ( rs->bResetRotation ) {
|
||||||
if ( !ValidateTextInt( gtk_entry_get_text( GTK_ENTRY( dlgTexReset.editRotation ) ), _( "Rotation" ), &rs->rotation ) ) {
|
rs->rotation = gtk_spin_button_get_value( GTK_SPIN_BUTTON( dlgTexReset.spinRotation ) );
|
||||||
dialogError = TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rs->bResetScale[0] = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbScaleHor ) );
|
rs->bResetScale[0] = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbScaleHor ) );
|
||||||
if ( rs->bResetScale[0] ) {
|
if ( rs->bResetScale[0] ) {
|
||||||
if ( !ValidateTextFloat( gtk_entry_get_text( GTK_ENTRY( dlgTexReset.editScaleHor ) ), _( "Horizontal Scale" ), &rs->fScale[0] ) ) {
|
rs->fScale[0] = gtk_spin_button_get_value( GTK_SPIN_BUTTON( dlgTexReset.spinScaleHor ) );
|
||||||
dialogError = TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rs->bResetScale[1] = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbScaleVert ) );
|
rs->bResetScale[1] = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbScaleVert ) );
|
||||||
if ( rs->bResetScale[1] ) {
|
if ( rs->bResetScale[1] ) {
|
||||||
if ( !ValidateTextFloat( gtk_entry_get_text( GTK_ENTRY( dlgTexReset.editScaleVert ) ), _( "Vertical Scale" ), &rs->fScale[1] ) ) {
|
rs->fScale[1] = gtk_spin_button_get_value( GTK_SPIN_BUTTON( dlgTexReset.spinScaleVert ) );
|
||||||
dialogError = TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rs->bResetShift[0] = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbShiftHor ) );
|
rs->bResetShift[0] = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbShiftHor ) );
|
||||||
if ( rs->bResetShift[0] ) {
|
if ( rs->bResetShift[0] ) {
|
||||||
if ( !ValidateTextFloat( gtk_entry_get_text( GTK_ENTRY( dlgTexReset.editShiftHor ) ), _( "Horizontal Shift" ), &rs->fShift[0] ) ) {
|
rs->fShift[0] = gtk_spin_button_get_value( GTK_SPIN_BUTTON( dlgTexReset.spinShiftHor ) );
|
||||||
dialogError = TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rs->bResetShift[1] = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbShiftVert ) );
|
rs->bResetShift[1] = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbShiftVert ) );
|
||||||
if ( rs->bResetShift[1] ) {
|
if ( rs->bResetShift[1] ) {
|
||||||
if ( !ValidateTextFloat( gtk_entry_get_text( GTK_ENTRY( dlgTexReset.editShiftVert ) ), _( "Vertical Shift" ), &rs->fShift[1] ) ) {
|
rs->fShift[1] = gtk_spin_button_get_value( GTK_SPIN_BUTTON( dlgTexReset.spinShiftVert ) );
|
||||||
dialogError = TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rs->bResetTextureName = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbTexChange ) );
|
rs->bResetTextureName = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( dlgTexReset.cbTexChange ) );
|
||||||
|
|
|
@ -36,7 +36,7 @@ CListener *Listener = NULL;
|
||||||
static const char *PLUGIN_NAME = "Camera";
|
static const char *PLUGIN_NAME = "Camera";
|
||||||
|
|
||||||
// commands in the menu
|
// commands in the menu
|
||||||
static const char *PLUGIN_COMMANDS = "About...,-,Load Camera...,-,Preview Camera,-,Camera Inspector...,-,New Spline Camera,New Interpolated Camera,New Fixed Camera";
|
static const char *PLUGIN_COMMANDS = "About,-,Load Camera...,-,Preview Camera,-,Camera Inspector...,-,New Spline Camera...,New Interpolated Camera...,New Fixed Camera...";
|
||||||
|
|
||||||
// globals
|
// globals
|
||||||
GtkWidget *g_pRadiantWnd = NULL;
|
GtkWidget *g_pRadiantWnd = NULL;
|
||||||
|
@ -116,7 +116,7 @@ void QERPlug_Dispatch( const char* p, float* vMin, float* vMax, bool bSingleBrus
|
||||||
else if ( !strcmp( p, "Load Camera..." ) ) {
|
else if ( !strcmp( p, "Load Camera..." ) ) {
|
||||||
DoLoadCamera();
|
DoLoadCamera();
|
||||||
}
|
}
|
||||||
else if ( !strcmp( p, "About..." ) ) {
|
else if ( !strcmp( p, "About" ) ) {
|
||||||
g_FuncTable.m_pfnMessageBox( (GtkWidget *)g_pRadiantWnd, PLUGIN_ABOUT, "About", MB_OK, NULL );
|
g_FuncTable.m_pfnMessageBox( (GtkWidget *)g_pRadiantWnd, PLUGIN_ABOUT, "About", MB_OK, NULL );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1392,7 +1392,8 @@ GtkWidget* create_main_dialog(){
|
||||||
(GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
|
(GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
|
||||||
gtk_widget_show( frame );
|
gtk_widget_show( frame );
|
||||||
|
|
||||||
vbox = gtk_vbox_new( TRUE, 5 );
|
vbox = gtk_vbox_new( FALSE, 5 );
|
||||||
|
gtk_box_set_homogeneous( GTK_BOX( vbox ), TRUE );
|
||||||
gtk_container_add( GTK_CONTAINER( frame ), vbox );
|
gtk_container_add( GTK_CONTAINER( frame ), vbox );
|
||||||
gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
|
gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
|
||||||
gtk_widget_show( vbox );
|
gtk_widget_show( vbox );
|
||||||
|
@ -1413,7 +1414,8 @@ GtkWidget* create_main_dialog(){
|
||||||
(GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
|
(GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
|
||||||
gtk_widget_show( frame );
|
gtk_widget_show( frame );
|
||||||
|
|
||||||
vbox = gtk_vbox_new( TRUE, 5 );
|
vbox = gtk_vbox_new( FALSE, 5 );
|
||||||
|
gtk_box_set_homogeneous( GTK_BOX( vbox ), TRUE );
|
||||||
gtk_container_add( GTK_CONTAINER( frame ), vbox );
|
gtk_container_add( GTK_CONTAINER( frame ), vbox );
|
||||||
gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
|
gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
|
||||||
gtk_widget_show( vbox );
|
gtk_widget_show( vbox );
|
||||||
|
@ -1434,7 +1436,8 @@ GtkWidget* create_main_dialog(){
|
||||||
(GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
|
(GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
|
||||||
gtk_widget_show( frame );
|
gtk_widget_show( frame );
|
||||||
|
|
||||||
vbox = gtk_vbox_new( TRUE, 5 );
|
vbox = gtk_vbox_new( FALSE, 5 );
|
||||||
|
gtk_box_set_homogeneous( GTK_BOX( vbox ), TRUE );
|
||||||
gtk_container_add( GTK_CONTAINER( frame ), vbox );
|
gtk_container_add( GTK_CONTAINER( frame ), vbox );
|
||||||
gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
|
gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
|
||||||
gtk_widget_show( vbox );
|
gtk_widget_show( vbox );
|
||||||
|
@ -1837,7 +1840,8 @@ GtkWidget* create_main_dialog(){
|
||||||
g_object_set_data( G_OBJECT( dlg ), "bmp_file", entry );
|
g_object_set_data( G_OBJECT( dlg ), "bmp_file", entry );
|
||||||
g_signal_connect( G_OBJECT( entry ), "focus-out-event", G_CALLBACK( bitmap_file_entryfocusout ), NULL );
|
g_signal_connect( G_OBJECT( entry ), "focus-out-event", G_CALLBACK( bitmap_file_entryfocusout ), NULL );
|
||||||
|
|
||||||
hbox2 = gtk_hbox_new( TRUE, 5 );
|
hbox2 = gtk_hbox_new( FALSE, 5 );
|
||||||
|
gtk_box_set_homogeneous( GTK_BOX( hbox2 ), TRUE );
|
||||||
gtk_table_attach( GTK_TABLE( table ), hbox2, 1, 2, 1, 2,
|
gtk_table_attach( GTK_TABLE( table ), hbox2, 1, 2, 1, 2,
|
||||||
(GtkAttachOptions) ( 0 ),
|
(GtkAttachOptions) ( 0 ),
|
||||||
(GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
|
(GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
|
||||||
|
|
|
@ -40,8 +40,8 @@ const char* QERPlug_GetName(){
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* QERPlug_GetCommandList(){
|
const char* QERPlug_GetCommandList(){
|
||||||
return "Wall facing 270...;Wall facing 180...;Wall facing 90...;Wall facing 0...;"
|
return "About;-;Wall facing 270...;Wall facing 180...;Wall facing 90...;Wall facing 0...;"
|
||||||
"Ceiling...;Ground surface...;-;About...";
|
"Ceiling...;Ground surface...";
|
||||||
}
|
}
|
||||||
|
|
||||||
// vMin/vMax provide the bounds of the selection, they are zero if there is no selection
|
// vMin/vMax provide the bounds of the selection, they are zero if there is no selection
|
||||||
|
@ -129,7 +129,7 @@ void QERPlug_Dispatch( const char *p, vec3_t vMin, vec3_t vMax, bool bSingleBrus
|
||||||
}
|
}
|
||||||
Generate = true;
|
Generate = true;
|
||||||
}
|
}
|
||||||
else if ( !strcmp( p,"About..." ) ) {
|
else if ( !strcmp( p,"About" ) ) {
|
||||||
About( g_pRadiantWnd );
|
About( g_pRadiantWnd );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -394,7 +394,8 @@ void CreateViewWindow(){
|
||||||
gtk_widget_show( vbox );
|
gtk_widget_show( vbox );
|
||||||
|
|
||||||
#ifndef ISOMETRIC
|
#ifndef ISOMETRIC
|
||||||
hbox = gtk_hbox_new( TRUE, 5 );
|
hbox = gtk_hbox_new( FALSE, 5 );
|
||||||
|
gtk_box_set_homogeneous( GTK_BOX( hbox ), TRUE );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, TRUE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, TRUE, 0 );
|
||||||
gtk_container_set_border_width( GTK_CONTAINER( hbox ), 3 );
|
gtk_container_set_border_width( GTK_CONTAINER( hbox ), 3 );
|
||||||
gtk_widget_show( hbox );
|
gtk_widget_show( hbox );
|
||||||
|
|
|
@ -334,7 +334,7 @@ void UpdateWadKeyPair( void ){
|
||||||
const char *PLUGIN_NAME = "HydraToolz";
|
const char *PLUGIN_NAME = "HydraToolz";
|
||||||
|
|
||||||
// commands in the menu
|
// commands in the menu
|
||||||
const char *PLUGIN_COMMANDS = "About...;Create/Update WAD keypair";
|
const char *PLUGIN_COMMANDS = "About;-;Create/Update WAD keypair";
|
||||||
|
|
||||||
const char *PLUGIN_ABOUT = "HydraToolz v1.0 for GTKRadiant\n\n"
|
const char *PLUGIN_ABOUT = "HydraToolz v1.0 for GTKRadiant\n\n"
|
||||||
"By Hydra!";
|
"By Hydra!";
|
||||||
|
@ -362,7 +362,7 @@ extern "C" void QERPlug_Dispatch( const char* p, vec3_t vMin, vec3_t vMax, bool
|
||||||
if ( !strcmp( p, "Create/Update WAD keypair" ) ) {
|
if ( !strcmp( p, "Create/Update WAD keypair" ) ) {
|
||||||
UpdateWadKeyPair();
|
UpdateWadKeyPair();
|
||||||
}
|
}
|
||||||
else if ( !strcmp( p, "About..." ) ) {
|
else if ( !strcmp( p, "About" ) ) {
|
||||||
g_FuncTable.m_pfnMessageBox( g_pMainWidget, PLUGIN_ABOUT, "About", MB_OK, NULL );
|
g_FuncTable.m_pfnMessageBox( g_pMainWidget, PLUGIN_ABOUT, "About", MB_OK, NULL );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ void DoAboutDlg( GtkWidget *parent ){
|
||||||
content_area = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) );
|
content_area = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) );
|
||||||
gtk_window_set_transient_for( GTK_WINDOW( dialog ), GTK_WINDOW( parent) );
|
gtk_window_set_transient_for( GTK_WINDOW( dialog ), GTK_WINDOW( parent) );
|
||||||
|
|
||||||
vbox = gtk_vbox_new( TRUE, 5 );
|
vbox = gtk_vbox_new( FALSE, 5 );
|
||||||
gtk_container_add( GTK_CONTAINER( content_area ), vbox );
|
gtk_container_add( GTK_CONTAINER( content_area ), vbox );
|
||||||
gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
|
gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
|
||||||
gtk_widget_show( vbox );
|
gtk_widget_show( vbox );
|
||||||
|
|
|
@ -420,7 +420,8 @@ void DoConfigDialog( GtkWidget *parent ){
|
||||||
gtk_widget_show( cliplabel );
|
gtk_widget_show( cliplabel );
|
||||||
g_signal_connect( adj, "value-changed", G_CALLBACK( OnScrollClip ), cliplabel );
|
g_signal_connect( adj, "value-changed", G_CALLBACK( OnScrollClip ), cliplabel );
|
||||||
|
|
||||||
hbox = gtk_hbox_new( TRUE, 5 );
|
hbox = gtk_hbox_new( FALSE, 5 );
|
||||||
|
gtk_box_set_homogeneous( GTK_BOX( hbox ), TRUE );
|
||||||
gtk_widget_show( hbox );
|
gtk_widget_show( hbox );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox2 ), hbox, TRUE, FALSE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox2 ), hbox, TRUE, FALSE, 0 );
|
||||||
|
|
||||||
|
|
|
@ -613,7 +613,8 @@ void DoConfigDialog(){
|
||||||
gtk_misc_set_alignment( GTK_MISC( cliplabel ), 0.0, 0.0 );
|
gtk_misc_set_alignment( GTK_MISC( cliplabel ), 0.0, 0.0 );
|
||||||
g_signal_connect( adj, "value-changed", G_CALLBACK( OnScrollClip ), cliplabel );
|
g_signal_connect( adj, "value-changed", G_CALLBACK( OnScrollClip ), cliplabel );
|
||||||
|
|
||||||
hbox = gtk_hbox_new( TRUE, 5 );
|
hbox = gtk_hbox_new( FALSE, 5 );
|
||||||
|
gtk_box_set_homogeneous( GTK_BOX( hbox ), TRUE );
|
||||||
gtk_widget_show( hbox );
|
gtk_widget_show( hbox );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox2 ), hbox, TRUE, FALSE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox2 ), hbox, TRUE, FALSE, 0 );
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#define Q3R_CMD_SPLITTER "-"
|
#define Q3R_CMD_SPLITTER "-"
|
||||||
#define Q3R_CMD_ABOUT "About Portal Viewer..."
|
#define Q3R_CMD_ABOUT "About"
|
||||||
#define Q3R_CMD_LOAD "Load .prt file"
|
#define Q3R_CMD_LOAD "Load .prt file"
|
||||||
#define Q3R_CMD_RELEASE "Unload .prt file"
|
#define Q3R_CMD_RELEASE "Unload .prt file"
|
||||||
#define Q3R_CMD_SHOW_3D "Toggle portals (3D)"
|
#define Q3R_CMD_SHOW_3D "Toggle portals (3D)"
|
||||||
|
|
|
@ -77,6 +77,7 @@ virtual ~IRender() { }
|
||||||
virtual void IncRef() = 0; // increments the reference counter for this object
|
virtual void IncRef() = 0; // increments the reference counter for this object
|
||||||
virtual void DecRef() = 0; // decrements the reference counter for this object, deletes the object if reference count is zero
|
virtual void DecRef() = 0; // decrements the reference counter for this object, deletes the object if reference count is zero
|
||||||
virtual void Draw( int state, int rflags ) const = 0; // render the object - state = the opengl state
|
virtual void Draw( int state, int rflags ) const = 0; // render the object - state = the opengl state
|
||||||
|
virtual const bool IsModelNotNull() const = 0;
|
||||||
virtual const aabb_t *GetAABB() const = 0;
|
virtual const aabb_t *GetAABB() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
BIN
install/bitmaps/selection_makehollowtouch.png
Normal file
BIN
install/bitmaps/selection_makehollowtouch.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 161 B |
|
@ -40,6 +40,7 @@ class CEntityMiscModel : public IRender, public ISelect, public IEdit
|
||||||
|
|
||||||
// IRender
|
// IRender
|
||||||
void Draw( int state, int rflags ) const;
|
void Draw( int state, int rflags ) const;
|
||||||
|
const bool IsModelNotNull() const { return m_model && m_model->pRender; }
|
||||||
const aabb_t *GetAABB() const { return &m_BBox; }
|
const aabb_t *GetAABB() const { return &m_BBox; }
|
||||||
|
|
||||||
// ISelect
|
// ISelect
|
||||||
|
@ -105,6 +106,7 @@ class CEntityEclassModel : public IRender, public ISelect, public IEdit
|
||||||
|
|
||||||
// IRender
|
// IRender
|
||||||
void Draw( int state, int rflags ) const;
|
void Draw( int state, int rflags ) const;
|
||||||
|
const bool IsModelNotNull() const { return m_model && m_model->pRender; }
|
||||||
const aabb_t *GetAABB() const { return &m_BBox; }
|
const aabb_t *GetAABB() const { return &m_BBox; }
|
||||||
|
|
||||||
// ISelect
|
// ISelect
|
||||||
|
|
|
@ -66,6 +66,7 @@ void Reload( void );
|
||||||
void Draw( int state, vector<IShader*> shaders, int rflags ) const;
|
void Draw( int state, vector<IShader*> shaders, int rflags ) const;
|
||||||
//IRender
|
//IRender
|
||||||
virtual void Draw( int state, int rflags ) const;
|
virtual void Draw( int state, int rflags ) const;
|
||||||
|
virtual const bool IsModelNotNull() const { return true; }
|
||||||
virtual const aabb_t *GetAABB() const { return &m_BBox; }
|
virtual const aabb_t *GetAABB() const { return &m_BBox; }
|
||||||
|
|
||||||
//ISelect
|
//ISelect
|
||||||
|
|
|
@ -141,6 +141,9 @@ virtual void DecRef(){
|
||||||
virtual void Draw( int state, int rflags ) const {
|
virtual void Draw( int state, int rflags ) const {
|
||||||
m_model->Draw( state, m_shaders, rflags );
|
m_model->Draw( state, m_shaders, rflags );
|
||||||
}
|
}
|
||||||
|
virtual const bool IsModelNotNull() const {
|
||||||
|
return m_model != NULL;
|
||||||
|
}
|
||||||
virtual const aabb_t *GetAABB() const {
|
virtual const aabb_t *GetAABB() const {
|
||||||
return m_model->GetAABB();
|
return m_model->GetAABB();
|
||||||
}
|
}
|
||||||
|
@ -300,6 +303,9 @@ virtual void DecRef(){
|
||||||
virtual void Draw( int state, int rflags ) const {
|
virtual void Draw( int state, int rflags ) const {
|
||||||
m_model->Draw( state, rflags );
|
m_model->Draw( state, rflags );
|
||||||
}
|
}
|
||||||
|
virtual const bool IsModelNotNull() const {
|
||||||
|
return m_model != NULL;
|
||||||
|
}
|
||||||
virtual const aabb_t *GetAABB() const {
|
virtual const aabb_t *GetAABB() const {
|
||||||
return m_model->GetAABB();
|
return m_model->GetAABB();
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,7 +148,7 @@ _QERShadersTable g_ShadersTable;
|
||||||
|
|
||||||
static const char *PLUGIN_NAME = "Sprite Model loading module";
|
static const char *PLUGIN_NAME = "Sprite Model loading module";
|
||||||
|
|
||||||
static const char *PLUGIN_COMMANDS = "About...";
|
static const char *PLUGIN_COMMANDS = "About";
|
||||||
|
|
||||||
static const char *PLUGIN_ABOUT = "Sprite Model loading module v0.2 for GTKRadiant\n\n"
|
static const char *PLUGIN_ABOUT = "Sprite Model loading module v0.2 for GTKRadiant\n\n"
|
||||||
"By Hydra!";
|
"By Hydra!";
|
||||||
|
@ -200,7 +200,7 @@ extern "C" const char* QERPlug_GetCommandList(){
|
||||||
|
|
||||||
extern "C" void QERPlug_Dispatch( const char *p, vec3_t vMin, vec3_t vMax, bool bSingleBrush ){
|
extern "C" void QERPlug_Dispatch( const char *p, vec3_t vMin, vec3_t vMax, bool bSingleBrush ){
|
||||||
// NOTE: this never happens in a module
|
// NOTE: this never happens in a module
|
||||||
if ( !strcmp( p, "About..." ) ) {
|
if ( !strcmp( p, "About" ) ) {
|
||||||
g_FuncTable.m_pfnMessageBox( g_pMainWidget, PLUGIN_ABOUT, "About", MB_OK, NULL );
|
g_FuncTable.m_pfnMessageBox( g_pMainWidget, PLUGIN_ABOUT, "About", MB_OK, NULL );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,6 +45,7 @@ void DecRef() {
|
||||||
|
|
||||||
//IRender
|
//IRender
|
||||||
void Draw( int state, int rflags ) const;
|
void Draw( int state, int rflags ) const;
|
||||||
|
const bool IsModelNotNull() const { return true; }
|
||||||
const aabb_t *GetAABB() const { return &m_BBox; }
|
const aabb_t *GetAABB() const { return &m_BBox; }
|
||||||
|
|
||||||
//ISelect
|
//ISelect
|
||||||
|
|
|
@ -119,22 +119,22 @@ bool C2DView::OnRButtonUp( int x, int y ){
|
||||||
item = gtk_menu_item_new_with_label( _( "Validate (RETURN)" ) );
|
item = gtk_menu_item_new_with_label( _( "Validate (RETURN)" ) );
|
||||||
g_signal_connect( G_OBJECT( item ), "activate", G_CALLBACK( Textool_Validate ), NULL );
|
g_signal_connect( G_OBJECT( item ), "activate", G_CALLBACK( Textool_Validate ), NULL );
|
||||||
gtk_widget_show( item );
|
gtk_widget_show( item );
|
||||||
gtk_menu_append( GTK_MENU( menu ), item );
|
gtk_menu_shell_append( GTK_MENU_SHELL( menu ), item );
|
||||||
|
|
||||||
item = gtk_menu_item_new_with_label( _( "Zoom in (INSERT)" ) );
|
item = gtk_menu_item_new_with_label( _( "Zoom in (INSERT)" ) );
|
||||||
g_signal_connect( G_OBJECT( item ), "activate", G_CALLBACK( view_ZoomIn ), this );
|
g_signal_connect( G_OBJECT( item ), "activate", G_CALLBACK( view_ZoomIn ), this );
|
||||||
gtk_widget_show( item );
|
gtk_widget_show( item );
|
||||||
gtk_menu_append( GTK_MENU( menu ), item );
|
gtk_menu_shell_append( GTK_MENU_SHELL( menu ), item );
|
||||||
|
|
||||||
item = gtk_menu_item_new_with_label( _( "Zoom out (DELETE)" ) );
|
item = gtk_menu_item_new_with_label( _( "Zoom out (DELETE)" ) );
|
||||||
g_signal_connect( G_OBJECT( item ), "activate", G_CALLBACK( view_ZoomOut ), this );
|
g_signal_connect( G_OBJECT( item ), "activate", G_CALLBACK( view_ZoomOut ), this );
|
||||||
gtk_widget_show( item );
|
gtk_widget_show( item );
|
||||||
gtk_menu_append( GTK_MENU( menu ), item );
|
gtk_menu_shell_append( GTK_MENU_SHELL( menu ), item );
|
||||||
|
|
||||||
item = gtk_menu_item_new_with_label( _( "Cancel (ESC)" ) );
|
item = gtk_menu_item_new_with_label( _( "Cancel (ESC)" ) );
|
||||||
g_signal_connect( G_OBJECT( item ), "activate", G_CALLBACK( Textool_Cancel ), NULL );
|
g_signal_connect( G_OBJECT( item ), "activate", G_CALLBACK( Textool_Cancel ), NULL );
|
||||||
gtk_widget_show( item );
|
gtk_widget_show( item );
|
||||||
gtk_menu_append( GTK_MENU( menu ), item );
|
gtk_menu_shell_append( GTK_MENU_SHELL( menu ), item );
|
||||||
|
|
||||||
gtk_menu_popup( GTK_MENU( menu ), NULL, NULL, NULL, NULL, 1, GDK_CURRENT_TIME );
|
gtk_menu_popup( GTK_MENU( menu ), NULL, NULL, NULL, NULL, 1, GDK_CURRENT_TIME );
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ _QERFuncTable_1 g_FuncTable;
|
||||||
const char *PLUGIN_NAME = "Q3 Texture Tools";
|
const char *PLUGIN_NAME = "Q3 Texture Tools";
|
||||||
|
|
||||||
// commands in the menu
|
// commands in the menu
|
||||||
const char *PLUGIN_COMMANDS = "About...;Go...";
|
const char *PLUGIN_COMMANDS = "About;-;Go...";
|
||||||
|
|
||||||
// cast to GtkWidget*
|
// cast to GtkWidget*
|
||||||
void *g_pMainWnd;
|
void *g_pMainWnd;
|
||||||
|
@ -775,8 +775,8 @@ extern "C" void QERPlug_Dispatch( const char* p, vec3_t vMin, vec3_t vMax, bool
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ( !strcmp( p, "About..." ) ) {
|
if ( !strcmp( p, "About" ) ) {
|
||||||
DoMessageBox( PLUGIN_ABOUT, "About ...", MB_OK );
|
DoMessageBox( PLUGIN_ABOUT, "About", MB_OK );
|
||||||
}
|
}
|
||||||
else if ( !strcmp( p, "Go..." ) ) {
|
else if ( !strcmp( p, "Go..." ) ) {
|
||||||
if ( !g_pToolWnd ) {
|
if ( !g_pToolWnd ) {
|
||||||
|
|
|
@ -2222,7 +2222,8 @@ face_t *Brush_Ray( vec3_t origin, vec3_t dir, brush_t *b, float *dist, int nFlag
|
||||||
if ( b->owner->eclass->fixedsize
|
if ( b->owner->eclass->fixedsize
|
||||||
&& b->owner->model.pSelect
|
&& b->owner->model.pSelect
|
||||||
&& !( !IsBrushSelected( b ) && ( g_PrefsDlg.m_nEntityShowState & ENTITY_SELECTED_ONLY ) )
|
&& !( !IsBrushSelected( b ) && ( g_PrefsDlg.m_nEntityShowState & ENTITY_SELECTED_ONLY ) )
|
||||||
&& g_PrefsDlg.m_nEntityShowState != ENTITY_BOX ) {
|
&& g_PrefsDlg.m_nEntityShowState != ENTITY_BOX
|
||||||
|
&& b->owner->model.pRender->IsModelNotNull() ) {
|
||||||
ray_t ray_local;
|
ray_t ray_local;
|
||||||
vec_t dist_local = FLT_MAX;
|
vec_t dist_local = FLT_MAX;
|
||||||
ray_construct_for_vec3( &ray_local, origin, dir );
|
ray_construct_for_vec3( &ray_local, origin, dir );
|
||||||
|
@ -2259,8 +2260,7 @@ face_t *Brush_Ray( vec3_t origin, vec3_t dir, brush_t *b, float *dist, int nFlag
|
||||||
for ( i = 0 ; i < 3 ; i++ )
|
for ( i = 0 ; i < 3 ; i++ )
|
||||||
p1[i] = p1[i] + frac * ( p2[i] - p1[i] );
|
p1[i] = p1[i] + frac * ( p2[i] - p1[i] );
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
for ( i = 0 ; i < 3 ; i++ )
|
for ( i = 0 ; i < 3 ; i++ )
|
||||||
p2[i] = p1[i] + frac * ( p2[i] - p1[i] );
|
p2[i] = p1[i] + frac * ( p2[i] - p1[i] );
|
||||||
}
|
}
|
||||||
|
@ -2640,8 +2640,9 @@ void Brush_SelectFaceForDragging( brush_t *b, face_t *f, qboolean shear ){
|
||||||
// leave it alone
|
// leave it alone
|
||||||
//
|
//
|
||||||
if ( i != w->numpoints ) {
|
if ( i != w->numpoints ) {
|
||||||
if ( i == 0 ) { // see if the first clockwise point was the
|
// see if the first clockwise point was the
|
||||||
// last point on the winding
|
// last point on the winding
|
||||||
|
if ( i == 0 ) {
|
||||||
d = DotProduct( w->points[w->numpoints - 1]
|
d = DotProduct( w->points[w->numpoints - 1]
|
||||||
, f->plane.normal ) - f->plane.dist;
|
, f->plane.normal ) - f->plane.dist;
|
||||||
if ( d > -ON_EPSILON && d < ON_EPSILON ) {
|
if ( d > -ON_EPSILON && d < ON_EPSILON ) {
|
||||||
|
|
|
@ -925,12 +925,24 @@ void CamWnd::Cam_DrawBrush( brush_t *b, int mode ){
|
||||||
if ( !( nGLState & DRAW_GL_TEXTURE_2D ) ) {
|
if ( !( nGLState & DRAW_GL_TEXTURE_2D ) ) {
|
||||||
qglColor4fv( material );
|
qglColor4fv( material );
|
||||||
}
|
}
|
||||||
else{ qglColor4fv( identity ); }
|
else {
|
||||||
|
qglColor4fv( identity );
|
||||||
|
}
|
||||||
|
|
||||||
if ( nGLState & DRAW_GL_LIGHTING ) {
|
if ( nGLState & DRAW_GL_LIGHTING ) {
|
||||||
qglShadeModel( GL_SMOOTH );
|
qglShadeModel( GL_SMOOTH );
|
||||||
}
|
}
|
||||||
|
|
||||||
b->owner->model.pRender->Draw( nGLState, DRAW_RF_CAM );
|
// Check model validity
|
||||||
|
// If the model is NULL or invalid, draw a box instead
|
||||||
|
bool isModelValid = b->owner->model.pRender->IsModelNotNull();
|
||||||
|
if ( isModelValid ) {
|
||||||
|
b->owner->model.pRender->Draw( nGLState, DRAW_RF_CAM );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
qglColor4fv( material );
|
||||||
|
aabb_draw( b->owner->model.pRender->GetAABB(), DRAW_GL_WIRE );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DRAW_WIRE:
|
case DRAW_WIRE:
|
||||||
|
|
|
@ -35,8 +35,6 @@
|
||||||
#include "groupdialog.h"
|
#include "groupdialog.h"
|
||||||
|
|
||||||
GtkWidget* EntWidgets[EntLast];
|
GtkWidget* EntWidgets[EntLast];
|
||||||
GtkListStore* g_entlist_store;
|
|
||||||
GtkListStore* g_entprops_store;
|
|
||||||
int inspector_mode; // W_TEXTURE, W_ENTITY, or W_CONSOLE
|
int inspector_mode; // W_TEXTURE, W_ENTITY, or W_CONSOLE
|
||||||
qboolean multiple_entities;
|
qboolean multiple_entities;
|
||||||
qboolean disable_spawn_get = false;
|
qboolean disable_spawn_get = false;
|
||||||
|
@ -90,7 +88,10 @@ static void entity_check( GtkWidget *widget, gpointer data );
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void FillClassList(){
|
void FillClassList(){
|
||||||
GtkListStore* store = g_entlist_store;
|
GtkListStore *store;
|
||||||
|
GtkTreeModel * model;
|
||||||
|
model = GTK_TREE_MODEL( gtk_tree_view_get_model( GTK_TREE_VIEW( EntWidgets[EntList] ) ) );
|
||||||
|
store = GTK_LIST_STORE( model );
|
||||||
|
|
||||||
gtk_list_store_clear( store );
|
gtk_list_store_clear( store );
|
||||||
|
|
||||||
|
@ -109,7 +110,10 @@ void FillClassList(){
|
||||||
//
|
//
|
||||||
|
|
||||||
void SetKeyValuePairs( bool bClearMD3 ){
|
void SetKeyValuePairs( bool bClearMD3 ){
|
||||||
GtkListStore* store = g_entprops_store;
|
GtkListStore *store;
|
||||||
|
GtkTreeModel * model;
|
||||||
|
model = GTK_TREE_MODEL( gtk_tree_view_get_model( GTK_TREE_VIEW( EntWidgets[EntProps] ) ) );
|
||||||
|
store = GTK_LIST_STORE( model );
|
||||||
|
|
||||||
gtk_list_store_clear( store );
|
gtk_list_store_clear( store );
|
||||||
|
|
||||||
|
@ -347,7 +351,7 @@ bool UpdateEntitySel( eclass_t *pec ){
|
||||||
Sys_FPrintf( SYS_WRN, "UpdateEntitySel\n" );
|
Sys_FPrintf( SYS_WRN, "UpdateEntitySel\n" );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
GtkTreeModel* model = GTK_TREE_MODEL( g_entlist_store );
|
GtkTreeModel* model = GTK_TREE_MODEL( gtk_tree_view_get_model( GTK_TREE_VIEW( EntWidgets[EntList] ) ) );
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
unsigned int i = 0;
|
unsigned int i = 0;
|
||||||
for ( gboolean good = gtk_tree_model_get_iter_first( model, &iter ); good != FALSE; good = gtk_tree_model_iter_next( model, &iter ) )
|
for ( gboolean good = gtk_tree_model_get_iter_first( model, &iter ); good != FALSE; good = gtk_tree_model_iter_next( model, &iter ) )
|
||||||
|
@ -1059,12 +1063,21 @@ static gint eclasslist_keypress( GtkWidget* widget, GdkEventKey* event, gpointer
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void proplist_selection_changed( GtkTreeSelection* selection, gpointer data ){
|
static void proplist_selection_changed( GtkTreeSelection* selection, gpointer data ){
|
||||||
// find out what type of entity we are trying to create
|
// find out what type of entity we are trying to create
|
||||||
GtkTreeModel* model;
|
GtkTreeModel* model;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
if ( gtk_tree_selection_get_selected( selection, &model, &iter ) == FALSE ) {
|
GtkWidget *dialog, *del_button;
|
||||||
|
gboolean selected;
|
||||||
|
|
||||||
|
dialog = GTK_WIDGET( data );
|
||||||
|
del_button = GTK_WIDGET( g_object_get_data( G_OBJECT( dialog ), "del_button" ) );
|
||||||
|
|
||||||
|
selected = gtk_tree_selection_get_selected( selection, &model, &iter );
|
||||||
|
|
||||||
|
gtk_widget_set_sensitive( del_button, selected );
|
||||||
|
|
||||||
|
if ( selected == FALSE ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1078,6 +1091,10 @@ static void proplist_selection_changed( GtkTreeSelection* selection, gpointer da
|
||||||
g_free( key );
|
g_free( key );
|
||||||
g_free( val );
|
g_free( val );
|
||||||
}
|
}
|
||||||
|
static void proplist_view_realize( GtkWidget *widget, gpointer data )
|
||||||
|
{
|
||||||
|
proplist_selection_changed( gtk_tree_view_get_selection( GTK_TREE_VIEW( widget ) ), data );
|
||||||
|
}
|
||||||
|
|
||||||
static void entity_check( GtkWidget *widget, gpointer data ){
|
static void entity_check( GtkWidget *widget, gpointer data ){
|
||||||
if ( !disable_spawn_get ) {
|
if ( !disable_spawn_get ) {
|
||||||
|
@ -1215,30 +1232,34 @@ extern void PositionWindowOnPrimaryScreen( window_position_t& position );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void GroupDlg::Create(){
|
void GroupDlg::Create(){
|
||||||
|
GtkWidget *dialog, *content_area;
|
||||||
|
GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
|
||||||
|
|
||||||
if ( m_pWidget != NULL ) {
|
if ( m_pWidget != NULL ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkWidget* dlg = gtk_window_new( GTK_WINDOW_TOPLEVEL );
|
dialog = gtk_dialog_new_with_buttons( _( "Entities/Entity View" ), NULL, flags, NULL );
|
||||||
|
|
||||||
|
content_area = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) );
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
if ( g_PrefsDlg.m_bStartOnPrimMon ) {
|
if ( g_PrefsDlg.m_bStartOnPrimMon ) {
|
||||||
PositionWindowOnPrimaryScreen( g_PrefsDlg.mWindowInfo.posEntityWnd );
|
PositionWindowOnPrimaryScreen( g_PrefsDlg.mWindowInfo.posEntityWnd );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
load_window_pos( dlg, g_PrefsDlg.mWindowInfo.posEntityWnd );
|
load_window_pos( dialog, g_PrefsDlg.mWindowInfo.posEntityWnd );
|
||||||
|
|
||||||
gtk_window_set_title( GTK_WINDOW( dlg ), _( "Entities" ) );
|
g_signal_connect( G_OBJECT( dialog ), "delete-event", G_CALLBACK( OnDeleteHide ), NULL );
|
||||||
g_signal_connect( G_OBJECT( dlg ), "delete-event", G_CALLBACK( OnDeleteHide ), NULL );
|
|
||||||
// catch 'Esc'
|
// catch 'Esc'
|
||||||
g_signal_connect( G_OBJECT( dlg ), "key-press-event", G_CALLBACK( OnDialogKey ), NULL );
|
g_signal_connect( G_OBJECT( dialog ), "key-press-event", G_CALLBACK( OnDialogKey ), NULL );
|
||||||
|
|
||||||
gtk_window_set_transient_for( GTK_WINDOW( dlg ), GTK_WINDOW( g_pParentWnd->m_pWidget ) );
|
gtk_window_set_transient_for( GTK_WINDOW( dialog ), GTK_WINDOW( g_pParentWnd->m_pWidget ) );
|
||||||
g_qeglobals_gui.d_entity = dlg;
|
g_qeglobals_gui.d_entity = dialog;
|
||||||
|
|
||||||
{
|
{
|
||||||
GtkWidget* notebook = gtk_notebook_new();
|
GtkWidget* notebook = gtk_notebook_new();
|
||||||
gtk_container_add( GTK_CONTAINER( dlg ), notebook );
|
gtk_container_add( GTK_CONTAINER( content_area ), notebook );
|
||||||
gtk_notebook_set_tab_pos( GTK_NOTEBOOK( notebook ), GTK_POS_BOTTOM );
|
gtk_notebook_set_tab_pos( GTK_NOTEBOOK( notebook ), GTK_POS_BOTTOM );
|
||||||
gtk_widget_show( notebook );
|
gtk_widget_show( notebook );
|
||||||
m_pNotebook = notebook;
|
m_pNotebook = notebook;
|
||||||
|
@ -1261,20 +1282,20 @@ void GroupDlg::Create(){
|
||||||
|
|
||||||
{
|
{
|
||||||
GtkWidget* split2 = gtk_vpaned_new();
|
GtkWidget* split2 = gtk_vpaned_new();
|
||||||
gtk_paned_add1( GTK_PANED( split1 ), split2 );
|
gtk_paned_pack1( GTK_PANED( split1 ), split2, TRUE, FALSE );
|
||||||
gtk_widget_show( split2 );
|
gtk_widget_show( split2 );
|
||||||
|
|
||||||
g_object_set_data( G_OBJECT( dlg ), "split1", split1 );
|
g_object_set_data( G_OBJECT( dialog ), "split1", split1 );
|
||||||
g_object_set_data( G_OBJECT( dlg ), "split2", split2 );
|
g_object_set_data( G_OBJECT( dialog ), "split2", split2 );
|
||||||
|
|
||||||
{
|
{
|
||||||
GtkWidget* vbox2 = gtk_vbox_new( FALSE, 2 );
|
GtkWidget* vbox2 = gtk_vbox_new( FALSE, 2 );
|
||||||
gtk_paned_pack2( GTK_PANED( split1 ), vbox2, FALSE, FALSE );
|
gtk_paned_pack2( GTK_PANED( split1 ), vbox2, TRUE, FALSE );
|
||||||
gtk_widget_show( vbox2 );
|
gtk_widget_show( vbox2 );
|
||||||
|
|
||||||
{
|
{
|
||||||
GtkWidget* scr = gtk_scrolled_window_new( NULL, NULL );
|
GtkWidget* scr = gtk_scrolled_window_new( NULL, NULL );
|
||||||
gtk_paned_add1( GTK_PANED( split2 ), scr );
|
gtk_paned_pack1( GTK_PANED( split2 ), scr, TRUE, FALSE );
|
||||||
gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS );
|
gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS );
|
||||||
gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW( scr ), GTK_SHADOW_IN );
|
gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW( scr ), GTK_SHADOW_IN );
|
||||||
gtk_widget_show( scr );
|
gtk_widget_show( scr );
|
||||||
|
@ -1295,22 +1316,21 @@ void GroupDlg::Create(){
|
||||||
|
|
||||||
{
|
{
|
||||||
GtkTreeSelection* selection = gtk_tree_view_get_selection( GTK_TREE_VIEW( view ) );
|
GtkTreeSelection* selection = gtk_tree_view_get_selection( GTK_TREE_VIEW( view ) );
|
||||||
g_signal_connect( G_OBJECT( selection ), "changed", G_CALLBACK( eclasslist_selection_changed ), dlg );
|
g_signal_connect( G_OBJECT( selection ), "changed", G_CALLBACK( eclasslist_selection_changed ), dialog );
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_widget_show( view );
|
|
||||||
|
|
||||||
gtk_container_add( GTK_CONTAINER( scr ), view );
|
gtk_container_add( GTK_CONTAINER( scr ), view );
|
||||||
|
|
||||||
|
gtk_widget_show( view );
|
||||||
|
|
||||||
g_object_unref( G_OBJECT( store ) );
|
g_object_unref( G_OBJECT( store ) );
|
||||||
EntWidgets[EntList] = view;
|
EntWidgets[EntList] = view;
|
||||||
g_entlist_store = store;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
GtkWidget* scr = gtk_scrolled_window_new( NULL, NULL );
|
GtkWidget* scr = gtk_scrolled_window_new( NULL, NULL );
|
||||||
gtk_paned_add2( GTK_PANED( split2 ), scr );
|
gtk_paned_pack2( GTK_PANED( split2 ), scr, TRUE, FALSE );
|
||||||
gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS );
|
gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS );
|
||||||
gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW( scr ), GTK_SHADOW_IN );
|
gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW( scr ), GTK_SHADOW_IN );
|
||||||
gtk_widget_show( scr );
|
gtk_widget_show( scr );
|
||||||
|
@ -1369,17 +1389,16 @@ void GroupDlg::Create(){
|
||||||
|
|
||||||
{
|
{
|
||||||
GtkTreeSelection* selection = gtk_tree_view_get_selection( GTK_TREE_VIEW( view ) );
|
GtkTreeSelection* selection = gtk_tree_view_get_selection( GTK_TREE_VIEW( view ) );
|
||||||
g_signal_connect( G_OBJECT( selection ), "changed", G_CALLBACK( proplist_selection_changed ), dlg );
|
g_signal_connect( G_OBJECT( selection ), "changed", G_CALLBACK( proplist_selection_changed ), dialog );
|
||||||
|
g_signal_connect( G_OBJECT( view ), "realize", G_CALLBACK( proplist_view_realize ), dialog );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
gtk_container_add( GTK_CONTAINER( scr ), view );
|
gtk_container_add( GTK_CONTAINER( scr ), view );
|
||||||
|
|
||||||
gtk_widget_show( view );
|
gtk_widget_show( view );
|
||||||
g_object_unref( G_OBJECT( store ) );
|
g_object_unref( G_OBJECT( store ) );
|
||||||
|
|
||||||
EntWidgets[EntProps] = view;
|
EntWidgets[EntProps] = view;
|
||||||
g_entprops_store = store;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1539,9 +1558,9 @@ void GroupDlg::Create(){
|
||||||
|
|
||||||
{
|
{
|
||||||
GtkWidget* button = gtk_button_new_with_label( _( "Reset" ) );
|
GtkWidget* button = gtk_button_new_with_label( _( "Reset" ) );
|
||||||
|
gtk_box_pack_start( GTK_BOX( vbox2 ), button, FALSE, FALSE, 0 );
|
||||||
gtk_widget_show( button );
|
gtk_widget_show( button );
|
||||||
g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( ResetEntity ), NULL );
|
g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( ResetEntity ), NULL );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox2 ), button, FALSE, FALSE, 0 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -1570,6 +1589,7 @@ void GroupDlg::Create(){
|
||||||
gtk_box_pack_start( GTK_BOX( vbox2 ), button, FALSE, FALSE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox2 ), button, FALSE, FALSE, 0 );
|
||||||
gtk_widget_show( button );
|
gtk_widget_show( button );
|
||||||
g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( DelProp ), NULL );
|
g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( DelProp ), NULL );
|
||||||
|
g_object_set_data( G_OBJECT( dialog ), "del_button", button );
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -1630,7 +1650,7 @@ void GroupDlg::Create(){
|
||||||
}
|
}
|
||||||
|
|
||||||
inspector_mode = W_ENTITY;
|
inspector_mode = W_ENTITY;
|
||||||
m_pWidget = dlg;
|
m_pWidget = dialog;
|
||||||
g_signal_connect( G_OBJECT( notebook ), "switch-page", G_CALLBACK( switch_page ), dlg );
|
g_signal_connect( G_OBJECT( notebook ), "switch-page", G_CALLBACK( switch_page ), dialog );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1129,6 +1129,41 @@ static void entitylist_select( GtkWidget *widget, gpointer data ){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void add_entity_selection( entity_t *pEntity ) {
|
||||||
|
if( pEntity ) {
|
||||||
|
for ( epair_t* pEpair = pEntity->epairs; pEpair; pEpair = pEpair->next )
|
||||||
|
{
|
||||||
|
Select_Brush( pEntity->brushes.onext );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
static void entitylist_selected_foreach( GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data ) {
|
||||||
|
entity_t* pEntity;
|
||||||
|
gtk_tree_model_get( model, iter, 1, &pEntity, -1 );
|
||||||
|
add_entity_selection( pEntity );
|
||||||
|
|
||||||
|
//if parent (classname) node is selected then all child nodes are included
|
||||||
|
if( !pEntity ) {
|
||||||
|
GtkTreeIter child;
|
||||||
|
unsigned int i = 0;
|
||||||
|
while( gtk_tree_model_iter_nth_child( model, &child, iter, i++ ) ) {
|
||||||
|
gtk_tree_model_get( model, &child, 1, &pEntity, -1 );
|
||||||
|
add_entity_selection( pEntity );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
static void entitylist_multiselect( GtkWidget *widget, gpointer data ) {
|
||||||
|
GtkTreeView *view = GTK_TREE_VIEW( g_object_get_data( G_OBJECT( data ), "entities" ) );
|
||||||
|
|
||||||
|
GtkTreeSelection *selection = gtk_tree_view_get_selection( view );
|
||||||
|
|
||||||
|
Select_Deselect();
|
||||||
|
|
||||||
|
gtk_tree_selection_selected_foreach( selection, entitylist_selected_foreach, NULL );
|
||||||
|
|
||||||
|
Sys_UpdateWindows( W_ALL );
|
||||||
|
}
|
||||||
|
|
||||||
static gint entitylist_click( GtkWidget *widget, GdkEventButton *event, gpointer data ){
|
static gint entitylist_click( GtkWidget *widget, GdkEventButton *event, gpointer data ){
|
||||||
if ( event->type == GDK_2BUTTON_PRESS ) {
|
if ( event->type == GDK_2BUTTON_PRESS ) {
|
||||||
entitylist_select( NULL, data );
|
entitylist_select( NULL, data );
|
||||||
|
@ -1137,26 +1172,62 @@ static gint entitylist_click( GtkWidget *widget, GdkEventButton *event, gpointer
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void entitylist_selection_changed( GtkTreeSelection* selection, gpointer data ){
|
static void entitylist_selection_changed( GtkTreeSelection* selection, gpointer data ){
|
||||||
|
GtkTreeModel *model;
|
||||||
|
GtkTreeIter selected;
|
||||||
|
GtkTreeIter child;
|
||||||
|
entity_t *pEntity = NULL;
|
||||||
|
entity_t *firstEntity = NULL;
|
||||||
GtkListStore* store = GTK_LIST_STORE( g_object_get_data( G_OBJECT( data ), "keyvalues" ) );
|
GtkListStore* store = GTK_LIST_STORE( g_object_get_data( G_OBJECT( data ), "keyvalues" ) );
|
||||||
|
GtkWidget *notebook = (GtkWidget*)g_object_get_data( G_OBJECT( data ), "notebook" );
|
||||||
|
GtkWidget *keyvalue_page = (GtkWidget*)g_object_get_data( G_OBJECT( data ), "keyvalue_page" );
|
||||||
|
GtkWidget *desc_page = (GtkWidget*)g_object_get_data( G_OBJECT( data ), "description_page" );
|
||||||
|
GtkWidget *textview = (GtkWidget*)g_object_get_data( G_OBJECT( data ), "description_textview" );
|
||||||
|
|
||||||
|
|
||||||
gtk_list_store_clear( store );
|
gtk_list_store_clear( store );
|
||||||
|
|
||||||
GtkTreeModel* model;
|
if ( gtk_tree_selection_get_mode( selection ) == GTK_SELECTION_MULTIPLE ) {
|
||||||
GtkTreeIter selected;
|
GList *rows, *last;
|
||||||
if ( gtk_tree_selection_get_selected( selection, &model, &selected ) ) {
|
rows = gtk_tree_selection_get_selected_rows( selection, &model );
|
||||||
entity_t* pEntity;
|
//only the keys/values of the last selected node with entity
|
||||||
gtk_tree_model_get( model, &selected, 1, &pEntity, -1 );
|
last = g_list_last( rows );
|
||||||
|
if ( last ) {
|
||||||
if ( pEntity ) {
|
if ( gtk_tree_model_get_iter( model, &selected, (GtkTreePath *)last->data ) == TRUE ) {
|
||||||
for ( epair_t* pEpair = pEntity->epairs; pEpair; pEpair = pEpair->next )
|
gtk_tree_model_get( model, &selected, 1, &pEntity, -1 );
|
||||||
{
|
if ( !pEntity ) {
|
||||||
GtkTreeIter appended;
|
if( gtk_tree_model_iter_nth_child( model, &child, &selected, 0 ) ) {
|
||||||
gtk_list_store_append( store, &appended );
|
gtk_tree_model_get( model, &child, 1, &firstEntity, -1 );
|
||||||
gtk_list_store_set( store, &appended, 0, pEpair->key, 1, pEpair->value, -1 );
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
g_list_free_full( rows, (GDestroyNotify)gtk_tree_path_free );
|
||||||
|
|
||||||
|
} else if ( gtk_tree_selection_get_selected( selection, &model, &selected ) ) {
|
||||||
|
entity_t* pEntity;
|
||||||
|
gtk_tree_model_get( model, &selected, 1, &pEntity, -1 );
|
||||||
}
|
}
|
||||||
|
if ( pEntity ) {
|
||||||
|
for ( epair_t* pEpair = pEntity->epairs; pEpair; pEpair = pEpair->next )
|
||||||
|
{
|
||||||
|
GtkTreeIter appended;
|
||||||
|
gtk_list_store_append( store, &appended );
|
||||||
|
gtk_list_store_set( store, &appended, 0, pEpair->key, 1, pEpair->value, -1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_notebook_set_current_page( GTK_NOTEBOOK( notebook ), gtk_notebook_page_num( GTK_NOTEBOOK( notebook ), keyvalue_page ) );
|
||||||
|
} else {
|
||||||
|
GtkTextBuffer *buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW( textview ) );
|
||||||
|
if( firstEntity && firstEntity->eclass && firstEntity->eclass->comments ) {
|
||||||
|
gtk_text_buffer_set_text( buffer, firstEntity->eclass->comments, -1 );
|
||||||
|
} else {
|
||||||
|
gtk_text_buffer_set_text( buffer, _( "No description available." ), -1 );
|
||||||
|
}
|
||||||
|
gtk_notebook_set_current_page( GTK_NOTEBOOK( notebook ), gtk_notebook_page_num( GTK_NOTEBOOK( notebook ), desc_page ) );
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void EnitityList_response( GtkDialog *dialog, gint response_id, gpointer user_data )
|
static void EnitityList_response( GtkDialog *dialog, gint response_id, gpointer user_data )
|
||||||
|
@ -1169,7 +1240,9 @@ static void EnitityList_response( GtkDialog *dialog, gint response_id, gpointer
|
||||||
}
|
}
|
||||||
void DoEntityList(){
|
void DoEntityList(){
|
||||||
static GtkWidget *dialog;
|
static GtkWidget *dialog;
|
||||||
GtkWidget *vbox, *hbox, *hbox2, *button, *scr, *content_area;
|
GtkWidget *vbox, *hbox, *hbox2, *button, *scr, *content_area, *paned;
|
||||||
|
GtkWidget *notebook, *label, *textview, *keyvalue_scr, *desc_scr;
|
||||||
|
gint keyvalue_index;
|
||||||
GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
|
GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
|
||||||
|
|
||||||
if ( EntityList_dialog != NULL ) {
|
if ( EntityList_dialog != NULL ) {
|
||||||
|
@ -1185,13 +1258,12 @@ void DoEntityList(){
|
||||||
|
|
||||||
content_area = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) );
|
content_area = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) );
|
||||||
|
|
||||||
hbox = gtk_hbox_new( TRUE, 5 );
|
paned = gtk_hpaned_new();
|
||||||
gtk_container_add( GTK_CONTAINER( content_area ), hbox );
|
gtk_box_pack_start( GTK_BOX( content_area ), paned, TRUE, TRUE, 0 );
|
||||||
gtk_container_set_border_width( GTK_CONTAINER( hbox ), 5 );
|
gtk_widget_show( paned );
|
||||||
gtk_widget_show( hbox );
|
|
||||||
|
|
||||||
scr = gtk_scrolled_window_new( (GtkAdjustment*)NULL, (GtkAdjustment*)NULL );
|
scr = gtk_scrolled_window_new( (GtkAdjustment*)NULL, (GtkAdjustment*)NULL );
|
||||||
gtk_box_pack_start( GTK_BOX( hbox ), scr, TRUE, TRUE, 0 );
|
gtk_paned_pack1( GTK_PANED( paned ), scr, FALSE, TRUE );
|
||||||
gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC );
|
gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC );
|
||||||
gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW( scr ), GTK_SHADOW_IN );
|
gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW( scr ), GTK_SHADOW_IN );
|
||||||
gtk_widget_show( scr );
|
gtk_widget_show( scr );
|
||||||
|
@ -1211,6 +1283,7 @@ void DoEntityList(){
|
||||||
|
|
||||||
{
|
{
|
||||||
GtkTreeSelection* selection = gtk_tree_view_get_selection( GTK_TREE_VIEW( view ) );
|
GtkTreeSelection* selection = gtk_tree_view_get_selection( GTK_TREE_VIEW( view ) );
|
||||||
|
gtk_tree_selection_set_mode( selection, GTK_SELECTION_MULTIPLE );
|
||||||
g_signal_connect( G_OBJECT( selection ), "changed", G_CALLBACK( entitylist_selection_changed ), dialog );
|
g_signal_connect( G_OBJECT( selection ), "changed", G_CALLBACK( entitylist_selection_changed ), dialog );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1276,11 +1349,20 @@ void DoEntityList(){
|
||||||
}
|
}
|
||||||
|
|
||||||
vbox = gtk_vbox_new( FALSE, 5 );
|
vbox = gtk_vbox_new( FALSE, 5 );
|
||||||
gtk_box_pack_start( GTK_BOX( hbox ), vbox, TRUE, TRUE, 0 );
|
gtk_paned_pack2( GTK_PANED( paned ), vbox, FALSE, TRUE );
|
||||||
gtk_widget_show( vbox );
|
gtk_widget_show( vbox );
|
||||||
|
|
||||||
scr = gtk_scrolled_window_new( (GtkAdjustment*)NULL, (GtkAdjustment*)NULL );
|
notebook = gtk_notebook_new();
|
||||||
gtk_box_pack_start( GTK_BOX( vbox ), scr, TRUE, TRUE, 0 );
|
// hide the notebook tabs since its not supposed to look like a notebook
|
||||||
|
gtk_notebook_set_show_tabs( GTK_NOTEBOOK( notebook ), FALSE );
|
||||||
|
gtk_box_pack_start( GTK_BOX( vbox ), notebook, TRUE, TRUE, 0 );
|
||||||
|
gtk_widget_show( notebook );
|
||||||
|
|
||||||
|
label = gtk_label_new( _( "Keys/Values" ) );
|
||||||
|
gtk_widget_show( label );
|
||||||
|
|
||||||
|
keyvalue_scr = scr = gtk_scrolled_window_new( NULL, NULL );
|
||||||
|
keyvalue_index = gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), scr, label );
|
||||||
gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC );
|
gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC );
|
||||||
gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW( scr ), GTK_SHADOW_IN );
|
gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW( scr ), GTK_SHADOW_IN );
|
||||||
gtk_widget_show( scr );
|
gtk_widget_show( scr );
|
||||||
|
@ -1310,6 +1392,29 @@ void DoEntityList(){
|
||||||
g_object_unref( G_OBJECT( store ) );
|
g_object_unref( G_OBJECT( store ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
label = gtk_label_new( _( "Description" ) );
|
||||||
|
gtk_widget_show( label );
|
||||||
|
|
||||||
|
desc_scr = scr = gtk_scrolled_window_new( NULL, NULL );
|
||||||
|
gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC );
|
||||||
|
gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW( scr ), GTK_SHADOW_IN );
|
||||||
|
gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), scr, label );
|
||||||
|
gtk_widget_show( scr );
|
||||||
|
|
||||||
|
textview = gtk_text_view_new();
|
||||||
|
gtk_text_view_set_wrap_mode( GTK_TEXT_VIEW( textview ), GTK_WRAP_WORD );
|
||||||
|
gtk_text_view_set_editable( GTK_TEXT_VIEW( textview ), FALSE );
|
||||||
|
gtk_container_add( GTK_CONTAINER( scr ), textview );
|
||||||
|
gtk_widget_show( textview );
|
||||||
|
|
||||||
|
gtk_notebook_set_current_page( GTK_NOTEBOOK( notebook ), keyvalue_index );
|
||||||
|
|
||||||
|
g_object_set_data( G_OBJECT( dialog ), "notebook", notebook );
|
||||||
|
g_object_set_data( G_OBJECT( dialog ), "keyvalue_page", keyvalue_scr );
|
||||||
|
g_object_set_data( G_OBJECT( dialog ), "description_page", desc_scr );
|
||||||
|
g_object_set_data( G_OBJECT( dialog ), "description_textview", textview );
|
||||||
|
|
||||||
|
|
||||||
hbox2 = gtk_hbox_new( FALSE, 5 );
|
hbox2 = gtk_hbox_new( FALSE, 5 );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox ), hbox2, FALSE, FALSE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox ), hbox2, FALSE, FALSE, 0 );
|
||||||
gtk_widget_show( hbox2 );
|
gtk_widget_show( hbox2 );
|
||||||
|
@ -1317,7 +1422,7 @@ void DoEntityList(){
|
||||||
button = gtk_button_new_with_label( _( "Select" ) );
|
button = gtk_button_new_with_label( _( "Select" ) );
|
||||||
gtk_box_pack_start( GTK_BOX( hbox2 ), button, FALSE, FALSE, 0 );
|
gtk_box_pack_start( GTK_BOX( hbox2 ), button, FALSE, FALSE, 0 );
|
||||||
g_signal_connect( G_OBJECT( button ), "clicked",
|
g_signal_connect( G_OBJECT( button ), "clicked",
|
||||||
G_CALLBACK( entitylist_select ), dialog );
|
G_CALLBACK( entitylist_multiselect ), dialog );
|
||||||
gtk_widget_set_size_request( button, 60, -1 );
|
gtk_widget_set_size_request( button, 60, -1 );
|
||||||
gtk_widget_show( button );
|
gtk_widget_show( button );
|
||||||
|
|
||||||
|
@ -1481,7 +1586,8 @@ void DoGamma(){
|
||||||
|
|
||||||
content_area = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) );
|
content_area = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) );
|
||||||
|
|
||||||
vbox = gtk_vbox_new( TRUE, 5 );
|
vbox = gtk_vbox_new( FALSE, 5 );
|
||||||
|
gtk_box_set_homogeneous( GTK_BOX( vbox ), TRUE );
|
||||||
gtk_container_add( GTK_CONTAINER( content_area ), vbox );
|
gtk_container_add( GTK_CONTAINER( content_area ), vbox );
|
||||||
gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
|
gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
|
||||||
gtk_widget_show( vbox );
|
gtk_widget_show( vbox );
|
||||||
|
@ -3428,7 +3534,8 @@ int DoLightIntensityDlg( int *intensity ){
|
||||||
gtk_misc_set_alignment( GTK_MISC( label ), 0.0, 0.5 );
|
gtk_misc_set_alignment( GTK_MISC( label ), 0.0, 0.5 );
|
||||||
gtk_widget_show( label );
|
gtk_widget_show( label );
|
||||||
|
|
||||||
hbox = gtk_hbox_new( TRUE, 5 );
|
hbox = gtk_hbox_new( FALSE, 5 );
|
||||||
|
gtk_box_set_homogeneous( GTK_BOX( hbox ), TRUE );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox ), hbox, TRUE, TRUE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox ), hbox, TRUE, TRUE, 0 );
|
||||||
gtk_container_set_border_width( GTK_CONTAINER( hbox ), 5 );
|
gtk_container_set_border_width( GTK_CONTAINER( hbox ), 5 );
|
||||||
gtk_widget_show( hbox );
|
gtk_widget_show( hbox );
|
||||||
|
|
|
@ -660,15 +660,16 @@ GtkWidget* new_image_icon( const char* filename ) {
|
||||||
str += filename;
|
str += filename;
|
||||||
|
|
||||||
pixbuf = gdk_pixbuf_new_from_file( str.GetBuffer(), &gerror );
|
pixbuf = gdk_pixbuf_new_from_file( str.GetBuffer(), &gerror );
|
||||||
if( pixbuf == NULL ) {
|
if( pixbuf != NULL ) {
|
||||||
|
icon = gtk_image_new_from_pixbuf( pixbuf );
|
||||||
|
g_object_unref( pixbuf );
|
||||||
|
} else {
|
||||||
Sys_FPrintf( SYS_ERR, "ERROR: Failed to load bitmap: %s, %s\n", str.GetBuffer(), gerror->message );
|
Sys_FPrintf( SYS_ERR, "ERROR: Failed to load bitmap: %s, %s\n", str.GetBuffer(), gerror->message );
|
||||||
g_error_free( gerror );
|
g_error_free( gerror );
|
||||||
|
icon = gtk_image_new_from_file( filename );
|
||||||
}
|
}
|
||||||
icon = gtk_image_new_from_pixbuf( pixbuf );
|
|
||||||
gtk_widget_show( icon );
|
gtk_widget_show( icon );
|
||||||
if( pixbuf ) {
|
|
||||||
g_object_unref( pixbuf );
|
|
||||||
}
|
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,9 +27,6 @@
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
extern "C" {
|
|
||||||
#include <gdk/gdkwin32.h>
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
#include <glib/gi18n.h>
|
#include <glib/gi18n.h>
|
||||||
|
@ -1542,7 +1539,7 @@ void MainFrame::create_main_menu( GtkWidget *window, GtkWidget *vbox ){
|
||||||
item = create_menu_item_with_mnemonic( menu, _( "Simple Patch Mesh..." ),
|
item = create_menu_item_with_mnemonic( menu, _( "Simple Patch Mesh..." ),
|
||||||
G_CALLBACK( HandleCommand ), ID_CURVE_SIMPLEPATCHMESH );
|
G_CALLBACK( HandleCommand ), ID_CURVE_SIMPLEPATCHMESH );
|
||||||
g_object_set_data( G_OBJECT( window ), "menu_simplepatchmesh", item );
|
g_object_set_data( G_OBJECT( window ), "menu_simplepatchmesh", item );
|
||||||
create_menu_item_with_mnemonic( menu, _( "Patch Inspector" ), G_CALLBACK( HandleCommand ), ID_PATCH_INSPECTOR );
|
create_menu_item_with_mnemonic( menu, _( "Patch Inspector..." ), G_CALLBACK( HandleCommand ), ID_PATCH_INSPECTOR );
|
||||||
menu_separator( menu );
|
menu_separator( menu );
|
||||||
menu_in_menu = create_menu_in_menu_with_mnemonic( menu, _( "Insert" ) );
|
menu_in_menu = create_menu_in_menu_with_mnemonic( menu, _( "Insert" ) );
|
||||||
create_menu_item_with_mnemonic( menu_in_menu, _( "Insert (2) Columns" ),
|
create_menu_item_with_mnemonic( menu_in_menu, _( "Insert (2) Columns" ),
|
||||||
|
@ -1822,7 +1819,7 @@ void MainFrame::create_main_toolbar( GtkWidget *window, GtkWidget *vbox ){
|
||||||
G_CALLBACK( HandleCommand ), GINT_TO_POINTER( ID_SELECTION_MAKEHOLLOW ) );
|
G_CALLBACK( HandleCommand ), GINT_TO_POINTER( ID_SELECTION_MAKEHOLLOW ) );
|
||||||
g_object_set_data( G_OBJECT( window ), "tb_selection_makehollow", w );
|
g_object_set_data( G_OBJECT( window ), "tb_selection_makehollow", w );
|
||||||
w = toolbar_append_item( GTK_TOOLBAR( toolbar ), "", _( "Hollow Touch" ), "",
|
w = toolbar_append_item( GTK_TOOLBAR( toolbar ), "", _( "Hollow Touch" ), "",
|
||||||
new_image_icon("selection_makehollow.png"),
|
new_image_icon("selection_makehollowtouch.png"),
|
||||||
G_CALLBACK( HandleCommand ), GINT_TO_POINTER( ID_SELECTION_MAKEHOLLOW_TOUCH ) );
|
G_CALLBACK( HandleCommand ), GINT_TO_POINTER( ID_SELECTION_MAKEHOLLOW_TOUCH ) );
|
||||||
g_object_set_data( G_OBJECT( window ), "tb_selection_makehollow_touch", w );
|
g_object_set_data( G_OBJECT( window ), "tb_selection_makehollow_touch", w );
|
||||||
|
|
||||||
|
@ -3234,26 +3231,7 @@ static void Sys_Restore( GtkWidget *w ){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined ( __linux__ ) || defined ( __APPLE__ )
|
gtk_window_deiconify( GTK_WINDOW( w ) );
|
||||||
Sys_FPrintf( SYS_WRN, "FIXME: Sys_Restore\n" );
|
|
||||||
#if 0
|
|
||||||
XWindowAttributes xattr;
|
|
||||||
GdkWindowPrivate *Private;
|
|
||||||
|
|
||||||
Private = (GdkWindowPrivate*)gtk_widget_get_window( w );
|
|
||||||
|
|
||||||
xattr.map_state = IsUnmapped;
|
|
||||||
XGetWindowAttributes( Private->xdisplay, Private->xwindow, &xattr );
|
|
||||||
|
|
||||||
if ( xattr.map_state == IsUnmapped ) {
|
|
||||||
XMapRaised( Private->xdisplay, Private->xwindow );
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
ShowWindow( (HWND)GDK_WINDOW_HWND( gtk_widget_get_window( w ) ), SW_RESTORE );
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
|
|
|
@ -659,7 +659,8 @@ void PatchDialog::BuildDialog(){
|
||||||
gtk_entry_set_alignment( GTK_ENTRY( spin ), 1.0 ); //right
|
gtk_entry_set_alignment( GTK_ENTRY( spin ), 1.0 ); //right
|
||||||
gtk_widget_show( spin );
|
gtk_widget_show( spin );
|
||||||
|
|
||||||
hbox2 = gtk_hbox_new( TRUE, 5 );
|
hbox2 = gtk_hbox_new( FALSE, 5 );
|
||||||
|
gtk_box_set_homogeneous( GTK_BOX( hbox2 ), TRUE );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox2 ), hbox2, TRUE, FALSE, 0 );
|
gtk_box_pack_start( GTK_BOX( vbox2 ), hbox2, TRUE, FALSE, 0 );
|
||||||
gtk_widget_show( hbox2 );
|
gtk_widget_show( hbox2 );
|
||||||
|
|
||||||
|
|
|
@ -3403,37 +3403,49 @@ void CGameInstall::OnGameSelectChanged( GtkWidget *widget, gpointer data ) {
|
||||||
g_free( str );
|
g_free( str );
|
||||||
i->UpdateData( FALSE );
|
i->UpdateData( FALSE );
|
||||||
|
|
||||||
|
GtkWidget *label = GTK_WIDGET( g_object_get_data( G_OBJECT( i->m_pWidget ), "executable_label" ) );
|
||||||
|
GtkWidget *entry = GTK_WIDGET( g_object_get_data( G_OBJECT( i->m_pWidget ), "executable_entry" ) );
|
||||||
|
GtkWidget *button = GTK_WIDGET( g_object_get_data( G_OBJECT( i->m_pWidget ), "executable_button" ) );
|
||||||
|
|
||||||
int game_id = i->m_availGames[ i->m_nComboSelect ];
|
int game_id = i->m_availGames[ i->m_nComboSelect ];
|
||||||
if ( game_id == GAME_Q2 || game_id == GAME_QUETOO ) {
|
if ( game_id == GAME_Q2 || game_id == GAME_QUETOO ) {
|
||||||
gtk_widget_show( i->m_executablesVBox );
|
gtk_widget_show( label );
|
||||||
|
gtk_widget_show( entry );
|
||||||
|
gtk_widget_show( button );
|
||||||
} else {
|
} else {
|
||||||
gtk_widget_hide( i->m_executablesVBox );
|
gtk_widget_hide( label );
|
||||||
|
gtk_widget_hide( entry );
|
||||||
|
gtk_widget_hide( button );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGameInstall::BuildDialog() {
|
void CGameInstall::BuildDialog() {
|
||||||
GtkWidget *dlg, *vbox1, *frame, *vbox2, *button, *text, *game_select_combo, *entry, *hbox;
|
GtkWidget *dlg, *vbox1, *frame, *table, *button, *text, *game_select_combo, *entry, *hbox;
|
||||||
|
|
||||||
dlg = m_pWidget;
|
dlg = m_pWidget;
|
||||||
gtk_window_set_title( GTK_WINDOW( dlg ), _( "Configure games" ) );
|
gtk_window_set_title( GTK_WINDOW( dlg ), _( "Configure games" ) );
|
||||||
|
|
||||||
vbox1 = gtk_vbox_new( FALSE, 5 );
|
vbox1 = gtk_vbox_new( FALSE, 5 );
|
||||||
gtk_container_set_border_width( GTK_CONTAINER( vbox1 ), 5 );
|
gtk_container_set_border_width( GTK_CONTAINER( vbox1 ), 5 );
|
||||||
gtk_widget_show( vbox1 );
|
|
||||||
gtk_container_add( GTK_CONTAINER( dlg ), vbox1 );
|
gtk_container_add( GTK_CONTAINER( dlg ), vbox1 );
|
||||||
|
gtk_widget_show( vbox1 );
|
||||||
|
|
||||||
frame = gtk_frame_new( _( "Configure a game" ) );
|
frame = gtk_frame_new( _( "Configure a game" ) );
|
||||||
|
gtk_box_pack_start( GTK_BOX( vbox1 ), frame, TRUE, TRUE, 0 );
|
||||||
gtk_widget_show( frame );
|
gtk_widget_show( frame );
|
||||||
gtk_container_add( GTK_CONTAINER( vbox1 ), frame );
|
|
||||||
|
|
||||||
vbox2 = gtk_vbox_new( FALSE, 5);
|
table = gtk_table_new( 5, 2, FALSE );
|
||||||
gtk_container_set_border_width( GTK_CONTAINER( vbox2 ), 5 );
|
gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
|
||||||
gtk_widget_show( vbox2 );
|
gtk_table_set_col_spacings( GTK_TABLE( table ), 5 );
|
||||||
gtk_container_add( GTK_CONTAINER( frame ), vbox2 );
|
gtk_container_set_border_width( GTK_CONTAINER( table ), 5 );
|
||||||
|
gtk_container_add( GTK_CONTAINER( frame ), table );
|
||||||
|
gtk_widget_show( table );
|
||||||
|
|
||||||
game_select_combo = gtk_combo_box_text_new();
|
game_select_combo = gtk_combo_box_text_new();
|
||||||
|
gtk_table_attach( GTK_TABLE( table ), game_select_combo, 1, 2, 0, 1,
|
||||||
|
(GtkAttachOptions) ( GTK_FILL ),
|
||||||
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( game_select_combo );
|
gtk_widget_show( game_select_combo );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox2 ), game_select_combo, FALSE, FALSE, 0 );
|
|
||||||
|
|
||||||
int iGame = 0;
|
int iGame = 0;
|
||||||
while ( m_availGames[ iGame ] != GAME_NONE ) {
|
while ( m_availGames[ iGame ] != GAME_NONE ) {
|
||||||
|
@ -3490,67 +3502,83 @@ void CGameInstall::BuildDialog() {
|
||||||
g_signal_connect( G_OBJECT( game_select_combo ), "changed", G_CALLBACK( OnGameSelectChanged ), this );
|
g_signal_connect( G_OBJECT( game_select_combo ), "changed", G_CALLBACK( OnGameSelectChanged ), this );
|
||||||
|
|
||||||
text = gtk_label_new( _( "Name:" ) );
|
text = gtk_label_new( _( "Name:" ) );
|
||||||
|
gtk_misc_set_alignment( GTK_MISC( text ), 0.0, 0.5 );
|
||||||
|
gtk_table_attach( GTK_TABLE( table ), text, 0, 1, 1, 2,
|
||||||
|
(GtkAttachOptions) ( GTK_FILL ),
|
||||||
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( text );
|
gtk_widget_show( text );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox2 ), text, FALSE, FALSE, 0 );
|
|
||||||
|
|
||||||
entry = gtk_entry_new();
|
entry = gtk_entry_new();
|
||||||
|
gtk_table_attach( GTK_TABLE( table ), entry, 1, 2, 1, 2,
|
||||||
|
(GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
|
||||||
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( entry );
|
gtk_widget_show( entry );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox2 ), entry, FALSE, FALSE, 0 );
|
|
||||||
AddDialogData( entry, &m_strName, DLG_ENTRY_TEXT );
|
AddDialogData( entry, &m_strName, DLG_ENTRY_TEXT );
|
||||||
|
|
||||||
text = gtk_label_new( _( "Game directory:" ) );
|
text = gtk_label_new( _( "Game directory:" ) );
|
||||||
|
gtk_misc_set_alignment( GTK_MISC( text ), 0.0, 0.5 );
|
||||||
|
gtk_table_attach( GTK_TABLE( table ), text, 0, 1, 2, 3,
|
||||||
|
(GtkAttachOptions) ( GTK_FILL ),
|
||||||
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( text );
|
gtk_widget_show( text );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox2 ), text, FALSE, FALSE, 0 );
|
|
||||||
|
|
||||||
hbox = gtk_hbox_new( FALSE, 5 );
|
hbox = gtk_hbox_new( FALSE, 5 );
|
||||||
|
gtk_table_attach( GTK_TABLE( table ), hbox, 1, 2, 2, 3,
|
||||||
|
(GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
|
||||||
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( hbox );
|
gtk_widget_show( hbox );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox2 ), hbox, FALSE, FALSE, 0 );
|
|
||||||
|
|
||||||
entry = gtk_entry_new();
|
entry = gtk_entry_new();
|
||||||
gtk_widget_show( entry );
|
|
||||||
gtk_box_pack_start( GTK_BOX( hbox ), entry, TRUE, TRUE, 0 );
|
gtk_box_pack_start( GTK_BOX( hbox ), entry, TRUE, TRUE, 0 );
|
||||||
|
gtk_widget_show( entry );
|
||||||
AddDialogData( entry, &m_strEngine, DLG_ENTRY_TEXT );
|
AddDialogData( entry, &m_strEngine, DLG_ENTRY_TEXT );
|
||||||
|
|
||||||
button = gtk_button_new_with_label( _( "..." ) );
|
button = gtk_button_new_with_label( _( "..." ) );
|
||||||
gtk_widget_show( button );
|
|
||||||
g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( OnBtnBrowseEngine ), this );
|
g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( OnBtnBrowseEngine ), this );
|
||||||
gtk_box_pack_start( GTK_BOX( hbox ), button, FALSE, FALSE, 0 );
|
gtk_box_pack_start( GTK_BOX( hbox ), button, FALSE, FALSE, 0 );
|
||||||
|
gtk_widget_show( button );
|
||||||
m_executablesVBox = gtk_vbox_new( TRUE, 0 );
|
|
||||||
gtk_box_pack_start( GTK_BOX( vbox2 ), m_executablesVBox, FALSE, FALSE, 0 );
|
|
||||||
gtk_widget_show( m_executablesVBox );
|
|
||||||
|
|
||||||
text = gtk_label_new( _( "Engine binaries directory:" ) );
|
text = gtk_label_new( _( "Engine binaries directory:" ) );
|
||||||
|
gtk_misc_set_alignment( GTK_MISC( text ), 0.0, 0.5 );
|
||||||
|
gtk_table_attach( GTK_TABLE( table ), text, 0, 1, 3, 4,
|
||||||
|
(GtkAttachOptions) ( GTK_FILL ),
|
||||||
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( text );
|
gtk_widget_show( text );
|
||||||
gtk_box_pack_start( GTK_BOX( m_executablesVBox ), text, FALSE, FALSE, 0 );
|
g_object_set_data( G_OBJECT( dlg ), "executable_label", text );
|
||||||
|
|
||||||
hbox = gtk_hbox_new( FALSE, 5 );
|
hbox = gtk_hbox_new( FALSE, 5 );
|
||||||
|
gtk_table_attach( GTK_TABLE( table ), hbox, 1, 2, 3, 4,
|
||||||
|
(GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
|
||||||
|
(GtkAttachOptions) ( 0 ), 0, 0 );
|
||||||
gtk_widget_show( hbox );
|
gtk_widget_show( hbox );
|
||||||
gtk_box_pack_start( GTK_BOX( m_executablesVBox ), hbox, FALSE, FALSE, 0 );
|
|
||||||
|
|
||||||
entry = gtk_entry_new();
|
entry = gtk_entry_new();
|
||||||
gtk_widget_show( entry );
|
|
||||||
gtk_box_pack_start( GTK_BOX( hbox ), entry, TRUE, TRUE, 0 );
|
gtk_box_pack_start( GTK_BOX( hbox ), entry, TRUE, TRUE, 0 );
|
||||||
|
gtk_widget_show( entry );
|
||||||
AddDialogData( entry, &m_strExecutables, DLG_ENTRY_TEXT );
|
AddDialogData( entry, &m_strExecutables, DLG_ENTRY_TEXT );
|
||||||
|
g_object_set_data( G_OBJECT( dlg ), "executable_entry", entry );
|
||||||
|
|
||||||
button = gtk_button_new_with_label( _( "..." ) );
|
button = gtk_button_new_with_label( _( "..." ) );
|
||||||
gtk_widget_show( button );
|
|
||||||
g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( OnBtnBrowseExecutables ), this );
|
g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( OnBtnBrowseExecutables ), this );
|
||||||
gtk_box_pack_start( GTK_BOX( hbox ), button, FALSE, FALSE, 0 );
|
gtk_box_pack_start( GTK_BOX( hbox ), button, FALSE, FALSE, 0 );
|
||||||
|
gtk_widget_show( button );
|
||||||
|
g_object_set_data( G_OBJECT( dlg ), "executable_button", button );
|
||||||
|
|
||||||
|
hbox = gtk_hbox_new( FALSE, 0 );
|
||||||
|
gtk_box_pack_start( GTK_BOX( vbox1 ), hbox, FALSE, FALSE, 0 );
|
||||||
|
gtk_widget_show( hbox );
|
||||||
|
|
||||||
button = gtk_button_new_with_label( _( "OK" ) );
|
button = gtk_button_new_with_label( _( "OK" ) );
|
||||||
|
gtk_box_pack_start( GTK_BOX( hbox ), button, TRUE, TRUE, 0 );
|
||||||
gtk_widget_show( button );
|
gtk_widget_show( button );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox1 ), button, TRUE, TRUE, 0 );
|
|
||||||
AddModalButton( button, IDOK );
|
AddModalButton( button, IDOK );
|
||||||
|
|
||||||
button = gtk_button_new_with_label( _( "Cancel" ) );
|
button = gtk_button_new_with_label( _( "Cancel" ) );
|
||||||
|
gtk_box_pack_start( GTK_BOX( hbox ), button, TRUE, TRUE, 0 );
|
||||||
gtk_widget_show( button );
|
gtk_widget_show( button );
|
||||||
gtk_box_pack_start( GTK_BOX( vbox1 ), button, TRUE, TRUE, 0 );
|
|
||||||
AddModalButton( button, IDCANCEL );
|
AddModalButton( button, IDCANCEL );
|
||||||
|
|
||||||
gtk_widget_set_size_request( dlg, 320, -1 );
|
// triggers the callback - sets the game name, shows/hide extra settings depending on project
|
||||||
|
|
||||||
// triggers the callback - sets the game name, shows/hide extra settings depending on project
|
|
||||||
gtk_combo_box_set_active( GTK_COMBO_BOX( game_select_combo ), 0 );
|
gtk_combo_box_set_active( GTK_COMBO_BOX( game_select_combo ), 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -275,7 +275,6 @@ protected:
|
||||||
// maps from m_nComboSelect to the games
|
// maps from m_nComboSelect to the games
|
||||||
int m_availGames[GAME_COUNT];
|
int m_availGames[GAME_COUNT];
|
||||||
|
|
||||||
GtkWidget * m_executablesVBox;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
|
@ -32,12 +32,7 @@
|
||||||
- Make sure the interface is not dependent on gtk.
|
- Make sure the interface is not dependent on gtk.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
//#include <gdk/win32/gdkwin32.h>
|
|
||||||
#include <gdk/gdkwin32.h>
|
|
||||||
#endif
|
|
||||||
#if defined ( __linux__ ) || defined ( __APPLE__ )
|
#if defined ( __linux__ ) || defined ( __APPLE__ )
|
||||||
#include <gdk/gdkx.h>
|
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#endif
|
#endif
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
|
|
@ -31,10 +31,6 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <GL/gl.h>
|
#include <GL/gl.h>
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include <gdk/gdkwin32.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
// variables
|
// variables
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue