#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);
}
}
}