#include "commands.h"
+#include "gtk/gtk.h"
#include "debugging/debugging.h"
#include "warnings.h"
#include "string/string.h"
#include "versionlib.h"
#include "gtkutil/messagebox.h"
-#include <gtk/gtk.h>
#include "gtkmisc.h"
typedef std::pair<Accelerator, int> ShortcutValue; // accelerator, isRegistered
}
ModalDialogButton m_close_button;
- GtkTreeView *m_list;
+ ui::TreeView m_list;
GtkTreeIter m_command_iter;
GtkTreeModel *m_model;
bool m_waiting_for_key;
// just unhighlight, user wanted to cancel
dialog.m_waiting_for_key = false;
gtk_list_store_set( GTK_LIST_STORE( dialog.m_model ), &dialog.m_command_iter, 2, false, -1 );
- gtk_widget_set_sensitive( GTK_WIDGET( dialog.m_list ), true );
+ gtk_widget_set_sensitive( dialog.m_list , true );
dialog.m_model = NULL;
return;
}
dialog.m_model = model;
// 2. disallow changing the row
- //gtk_widget_set_sensitive(GTK_WIDGET(dialog.m_list), false);
+ //gtk_widget_set_sensitive(dialog.m_list, false);
// 3. highlight the row
gtk_list_store_set( GTK_LIST_STORE( model ), &iter, 2, true, -1 );
Shortcuts::iterator thisShortcutIterator = g_shortcuts.find( commandName );
if ( thisShortcutIterator == g_shortcuts.end() ) {
gtk_list_store_set( GTK_LIST_STORE( dialog.m_model ), &dialog.m_command_iter, 2, false, -1 );
- gtk_widget_set_sensitive( GTK_WIDGET( dialog.m_list ), true );
+ gtk_widget_set_sensitive( dialog.m_list , true );
return true;
}
GlobalShortcuts_foreach( verify_visitor );
gtk_list_store_set( GTK_LIST_STORE( dialog.m_model ), &dialog.m_command_iter, 2, false, -1 );
- gtk_widget_set_sensitive( GTK_WIDGET( dialog.m_list ), true );
+ gtk_widget_set_sensitive( dialog.m_list , true );
if ( verify_visitor.allow ) {
// clear the ACTUAL accelerator first
return accelerator_window_key_press(widget, event, dialogptr);
}, &dialog);
- auto accel = ui::AccelGroup();
+ auto accel = ui::AccelGroup(ui::New);
window.add_accel_group( accel );
- GtkHBox* hbox = create_dialog_hbox( 4, 4 );
- gtk_container_add( GTK_CONTAINER( window ), GTK_WIDGET( hbox ) );
+ auto hbox = create_dialog_hbox( 4, 4 );
+ window.add(hbox);
{
- GtkScrolledWindow* scr = create_scrolled_window( GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC );
- gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( scr ), TRUE, TRUE, 0 );
+ auto scr = create_scrolled_window( ui::Policy::NEVER, ui::Policy::AUTOMATIC );
+ hbox.pack_start( scr, TRUE, TRUE, 0 );
{
- GtkListStore* store = gtk_list_store_new( 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INT );
+ ui::ListStore store = ui::ListStore(gtk_list_store_new( 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INT ));
- ui::Widget view = ui::TreeView(ui::TreeModel(GTK_TREE_MODEL(store)));
- dialog.m_list = GTK_TREE_VIEW( view );
+ auto view = ui::TreeView(ui::TreeModel(GTK_TREE_MODEL(store)));
+ dialog.m_list = view;
gtk_tree_view_set_enable_search( GTK_TREE_VIEW( view ), false ); // annoying
{
- auto renderer = ui::CellRendererText();
+ auto renderer = ui::CellRendererText(ui::New);
GtkTreeViewColumn* column = ui::TreeViewColumn( "Command", renderer, {{"text", 0}, {"weight-set", 2}, {"weight", 3}} );
gtk_tree_view_append_column( GTK_TREE_VIEW( view ), column );
}
{
- auto renderer = ui::CellRendererText();
+ auto renderer = ui::CellRendererText(ui::New);
GtkTreeViewColumn* column = ui::TreeViewColumn( "Key", renderer, {{"text", 1}, {"weight-set", 2}, {"weight", 3}} );
gtk_tree_view_append_column( GTK_TREE_VIEW( view ), column );
}
- gtk_widget_show( view );
- gtk_container_add( GTK_CONTAINER( scr ), view );
+ view.show();
+ scr.add(view);
{
// Initialize dialog
class BuildCommandList : public CommandVisitor
{
TextFileOutputStream m_commandList;
- GtkListStore* m_store;
+ ui::ListStore m_store;
public:
- BuildCommandList( const char* filename, GtkListStore* store ) : m_commandList( filename ), m_store( store ){
+ BuildCommandList( const char* filename, ui::ListStore store ) : m_commandList( filename ), m_store( store ){
}
void visit( const char* name, Accelerator& accelerator ){
StringOutputStream modifiers;
modifiers << accelerator;
- {
- GtkTreeIter iter;
- gtk_list_store_append( m_store, &iter );
- gtk_list_store_set( m_store, &iter, 0, name, 1, modifiers.c_str(), 2, false, 3, 800, -1 );
- }
+ m_store.append(0, name, 1, modifiers.c_str(), 2, false, 3, 800);
if ( !m_commandList.failed() ) {
int l = strlen( name );
GlobalShortcuts_foreach( visitor );
}
- g_object_unref( G_OBJECT( store ) );
+ store.unref();
}
}
- GtkVBox* vbox = create_dialog_vbox( 4 );
- gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( vbox ), TRUE, TRUE, 0 );
+ auto vbox = create_dialog_vbox( 4 );
+ hbox.pack_start( vbox, TRUE, TRUE, 0 );
{
- GtkButton* editbutton = create_dialog_button( "Edit", (GCallback) accelerator_edit_button_clicked, &dialog );
- gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( editbutton ), FALSE, FALSE, 0 );
-
- GtkButton* clearbutton = create_dialog_button( "Clear", (GCallback) accelerator_clear_button_clicked, &dialog );
- gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( clearbutton ), FALSE, FALSE, 0 );
-
- ui::Widget spacer = ui::Image();
- gtk_widget_show( spacer );
- gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( spacer ), TRUE, TRUE, 0 );
-
- GtkButton* button = create_modal_dialog_button( "Close", dialog.m_close_button );
- gtk_box_pack_start( GTK_BOX( vbox ), GTK_WIDGET( button ), FALSE, FALSE, 0 );
- widget_make_default( GTK_WIDGET( button ) );
- gtk_widget_grab_default( GTK_WIDGET( button ) );
- gtk_widget_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_Return, (GdkModifierType)0, (GtkAccelFlags)0 );
- gtk_widget_add_accelerator( GTK_WIDGET( button ), "clicked", accel, GDK_Escape, (GdkModifierType)0, (GtkAccelFlags)0 );
+ auto editbutton = create_dialog_button( "Edit", (GCallback) accelerator_edit_button_clicked, &dialog );
+ vbox.pack_start( editbutton, FALSE, FALSE, 0 );
+
+ auto clearbutton = create_dialog_button( "Clear", (GCallback) accelerator_clear_button_clicked, &dialog );
+ vbox.pack_start( clearbutton, FALSE, FALSE, 0 );
+
+ ui::Widget spacer = ui::Image(ui::New);
+ spacer.show();
+ vbox.pack_start( spacer, TRUE, TRUE, 0 );
+
+ auto button = create_modal_dialog_button( "Close", dialog.m_close_button );
+ vbox.pack_start( button, FALSE, FALSE, 0 );
+ widget_make_default( button );
+ gtk_widget_grab_default( button );
+ gtk_widget_add_accelerator( button , "clicked", accel, GDK_KEY_Return, (GdkModifierType)0, (GtkAccelFlags)0 );
+ gtk_widget_add_accelerator( button , "clicked", accel, GDK_KEY_Escape, (GdkModifierType)0, (GtkAccelFlags)0 );
}
modal_dialog_show( window, dialog );
- gtk_widget_destroy( GTK_WIDGET( window ) );
+ window.destroy();
}
#include "profile/profile.h"