#include <gdk/gdkkeysyms.h>
#include <uilib/uilib.h>
+#include <gtk/gtkspinbutton.h>
#include "os/path.h"
#include "math/aabb.h"
void DoSides( int type, int axis ){
ModalDialog dialog;
+ //GtkEntry* sides_entry;
+ GtkWidget* sides_spin;
auto window = MainFrame_getWindow().create_dialog_window("Arbitrary sides", G_CALLBACK(dialog_delete_callback ), &dialog );
label.show();
hbox.pack_start( label, FALSE, FALSE, 0 );
}
+// {
+// auto entry = sides_entry;
+// entry.show();
+// hbox.pack_start( entry, FALSE, FALSE, 0 );
+// gtk_widget_grab_focus( entry );
+// }
{
- auto entry = sides_entry;
- entry.show();
- hbox.pack_start( entry, FALSE, FALSE, 0 );
- gtk_widget_grab_focus( entry );
+ GtkAdjustment* adj;
+ EBrushPrefab BrushPrefabType = (EBrushPrefab)type;
+ switch ( BrushPrefabType )
+ {
+ case eBrushPrism :
+ case eBrushCone :
+ adj = GTK_ADJUSTMENT( gtk_adjustment_new( 8, 3, 1022, 1, 10, 0 ) );
+ break;
+ case eBrushSphere :
+ adj = GTK_ADJUSTMENT( gtk_adjustment_new( 8, 3, 31, 1, 10, 0 ) );
+ break;
+ case eBrushRock :
+ adj = GTK_ADJUSTMENT( gtk_adjustment_new( 32, 10, 1000, 1, 10, 0 ) );
+ break;
+ default:
+ adj = GTK_ADJUSTMENT( gtk_adjustment_new( 8, 3, 31, 1, 10, 0 ) );
+ break;
+ }
+
+ GtkWidget* spin = gtk_spin_button_new( adj, 1, 0 );
+ gtk_widget_show( spin );
+ gtk_box_pack_start( GTK_BOX( hbox ), spin, FALSE, FALSE, 0 );
+ gtk_widget_set_size_request( spin, 64, -1 );
+ gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( spin ), TRUE );
+
+ sides_spin = spin;
}
{
auto vbox = create_dialog_vbox( 4 );
}
if ( modal_dialog_show( window, dialog ) == eIDOK ) {
- const char *str = gtk_entry_get_text( sides_entry );
+// const char *str = gtk_entry_get_text( sides_entry );
- Scene_BrushConstructPrefab( GlobalSceneGraph(), (EBrushPrefab)type, atoi( str ), TextureBrowser_GetSelectedShader( GlobalTextureBrowser() ) );
+// Scene_BrushConstructPrefab( GlobalSceneGraph(), (EBrushPrefab)type, atoi( str ), TextureBrowser_GetSelectedShader( GlobalTextureBrowser() ) );
+ gtk_spin_button_update ( GTK_SPIN_BUTTON( sides_spin ) );
+ int sides = static_cast<int>( gtk_spin_button_get_value( GTK_SPIN_BUTTON( sides_spin ) ) );
+ Scene_BrushConstructPrefab( GlobalSceneGraph(), (EBrushPrefab)type, sides, TextureBrowser_GetSelectedShader( GlobalTextureBrowser() ) );
}
window.destroy();
{
auto button = create_dialog_button( "Credits", G_CALLBACK( about_button_credits ), 0 );
vbox2.pack_start( button, FALSE, FALSE, 0 );
+ gtk_widget_set_sensitive( GTK_WIDGET( button ), FALSE);
}
{
auto button = create_dialog_button( "Changes", G_CALLBACK( about_button_changelog ), 0 );
{
auto button = create_dialog_button( "Issues", G_CALLBACK( about_button_issues ), 0 );
vbox2.pack_start( button, FALSE, FALSE, 0 );
+ gtk_widget_set_sensitive( GTK_WIDGET( button ), FALSE);
}
}
}
// trying to show later
text_editor.show();
+ gtk_window_present( GTK_WINDOW( text_editor ) );
#if GDEF_OS_WINDOWS
ui::process();
ShellExecute( (HWND)GDK_WINDOW_HWND( gtk_widget_get_window( MainFrame_getWindow() ) ), "open", path.c_str(), 0, 0, SW_SHOW );
}
else{
- globalOutputStream() << "Failed to open '" << filename << "\n";
+ globalOutputStream() << "Failed to open '" << filename << "'\nOne sits in .pk3 most likely!\n";
}
return;
}
DoGtkTextEditor( path.c_str(), cursorpos, length );
}
else{
- globalOutputStream() << "Failed to open '" << filename << "\n";
+ globalOutputStream() << "Failed to open '" << filename << "'\nOne sits in .pk3 most likely!\n";
}
return;
}