Commands g_commands;
-void GlobalCommands_insert( const char* name, const Callback& callback, const Accelerator& accelerator ){
+void GlobalCommands_insert( const char* name, const Callback<void()>& callback, const Accelerator& accelerator ){
bool added = g_commands.insert( Commands::value_type( name, Command( callback, GlobalShortcuts_insert( name, accelerator ) ) ) ).second;
ASSERT_MESSAGE( added, "command already registered: " << makeQuoted( name ) );
}
Toggles g_toggles;
-void GlobalToggles_insert( const char* name, const Callback& callback, const BoolExportCallback& exportCallback, const Accelerator& accelerator ){
+void GlobalToggles_insert( const char* name, const Callback<void()>& callback, const Callback<void(const Callback<void(bool)> &)>& exportCallback, const Accelerator& accelerator ){
bool added = g_toggles.insert( Toggles::value_type( name, Toggle( callback, GlobalShortcuts_insert( name, accelerator ), exportCallback ) ) ).second;
ASSERT_MESSAGE( added, "toggle already registered: " << makeQuoted( name ) );
}
KeyEvents g_keyEvents;
-void GlobalKeyEvents_insert( const char* name, const Accelerator& accelerator, const Callback& keyDown, const Callback& keyUp ){
+void GlobalKeyEvents_insert( const char* name, const Accelerator& accelerator, const Callback<void()>& keyDown, const Callback<void()>& keyUp ){
bool added = g_keyEvents.insert( KeyEvents::value_type( name, KeyEvent( GlobalShortcuts_insert( name, accelerator ), keyDown, keyUp ) ) ).second;
ASSERT_MESSAGE( added, "command already registered: " << makeQuoted( name ) );
}
struct command_list_dialog_t : public ModalDialog
{
command_list_dialog_t()
- : m_close_button( *this, eIDCANCEL ), m_list( NULL ), m_command_iter(), m_model( NULL ), m_waiting_for_key( false ){
+ : m_close_button( *this, eIDCANCEL ), m_list( ui::null ), m_command_iter(), m_model( ui::null ), m_waiting_for_key( false ){
}
ModalDialogButton m_close_button;
ui::TreeView m_list;
GtkTreeIter m_command_iter;
- GtkTreeModel *m_model;
+ ui::TreeModel m_model;
bool m_waiting_for_key;
};
-void accelerator_clear_button_clicked( GtkButton *btn, gpointer dialogptr ){
+void accelerator_clear_button_clicked( ui::Button btn, gpointer dialogptr ){
command_list_dialog_t &dialog = *(command_list_dialog_t *) dialogptr;
if ( dialog.m_waiting_for_key ) {
dialog.m_waiting_for_key = false;
gtk_list_store_set( ui::ListStore::from( dialog.m_model ), &dialog.m_command_iter, 2, false, -1 );
gtk_widget_set_sensitive( dialog.m_list , true );
- dialog.m_model = NULL;
+ dialog.m_model = ui::TreeModel(ui::null);
return;
}
- GtkTreeSelection *sel = gtk_tree_view_get_selection( dialog.m_list );
+ auto sel = gtk_tree_view_get_selection( dialog.m_list );
GtkTreeModel *model;
GtkTreeIter iter;
if ( !gtk_tree_selection_get_selected( sel, &model, &iter ) ) {
GValue val;
memset( &val, 0, sizeof( val ) );
- gtk_tree_model_get_value( GTK_TREE_MODEL( model ), &iter, 0, &val );
+ gtk_tree_model_get_value(model, &iter, 0, &val );
const char *commandName = g_value_get_string( &val );;
// clear the ACTUAL accelerator too!
g_value_unset( &val );
}
-void accelerator_edit_button_clicked( GtkButton *btn, gpointer dialogptr ){
+void accelerator_edit_button_clicked( ui::Button btn, gpointer dialogptr ){
command_list_dialog_t &dialog = *(command_list_dialog_t *) dialogptr;
// 1. find selected row
- GtkTreeSelection *sel = gtk_tree_view_get_selection( dialog.m_list );
+ auto sel = gtk_tree_view_get_selection( dialog.m_list );
GtkTreeModel *model;
GtkTreeIter iter;
if ( !gtk_tree_selection_get_selected( sel, &model, &iter ) ) {
return;
}
dialog.m_command_iter = iter;
- dialog.m_model = model;
+ dialog.m_model = ui::TreeModel::from(model);
// 2. disallow changing the row
//gtk_widget_set_sensitive(dialog.m_list, false);
// 7. find the name of the accelerator
GValue val;
memset( &val, 0, sizeof( val ) );
- gtk_tree_model_get_value( GTK_TREE_MODEL( dialog.m_model ), &dialog.m_command_iter, 0, &val );
+ gtk_tree_model_get_value(dialog.m_model, &dialog.m_command_iter, 0, &val );
const char *commandName = g_value_get_string( &val );;
Shortcuts::iterator thisShortcutIterator = g_shortcuts.find( commandName );
if ( thisShortcutIterator == g_shortcuts.end() ) {
const char *commandName;
const Accelerator &newAccel;
ui::Widget widget;
- GtkTreeModel *model;
+ ui::TreeModel model;
public:
bool allow;
- VerifyAcceleratorNotTaken( const char *name, const Accelerator &accelerator, ui::Widget w, GtkTreeModel *m ) : commandName( name ), newAccel( accelerator ), widget( w ), model( m ), allow( true ){
+ VerifyAcceleratorNotTaken( const char *name, const Accelerator &accelerator, ui::Widget w, ui::TreeModel m ) : commandName( name ), newAccel( accelerator ), widget( w ), model( m ), allow( true ){
}
void visit( const char* name, Accelerator& accelerator ){
if ( !strcmp( name, commandName ) ) {
StringOutputStream msg;
msg << "The command " << name << " is already assigned to the key " << accelerator << ".\n\n"
<< "Do you want to unassign " << name << " first?";
- auto r = widget.window().alert( msg.c_str(), "Key already used", ui::alert_type::YESNOCANCEL );
+ auto r = ui::alert( widget.window(), msg.c_str(), "Key already used", ui::alert_type::YESNOCANCEL );
if ( r == ui::alert_response::YES ) {
// clear the ACTUAL accelerator too!
disconnect_accelerator( name );
accelerator = accelerator_null();
// empty the cell of the key binds dialog
GtkTreeIter i;
- if ( gtk_tree_model_get_iter_first( GTK_TREE_MODEL( model ), &i ) ) {
+ if ( gtk_tree_model_get_iter_first(model, &i ) ) {
for (;; )
{
GValue val;
memset( &val, 0, sizeof( val ) );
- gtk_tree_model_get_value( GTK_TREE_MODEL( model ), &i, 0, &val );
+ gtk_tree_model_get_value(model, &i, 0, &val );
const char *thisName = g_value_get_string( &val );;
if ( !strcmp( thisName, name ) ) {
gtk_list_store_set( ui::ListStore::from( model ), &i, 1, "", -1 );
}
g_value_unset( &val );
- if ( !gtk_tree_model_iter_next( GTK_TREE_MODEL( model ), &i ) ) {
+ if ( !gtk_tree_model_iter_next(model, &i ) ) {
break;
}
}
g_value_unset( &val );
- dialog.m_model = NULL;
+ dialog.m_model = ui::TreeModel(ui::null);
return true;
}
GtkTreeIter row;
GValue val;
if(!model) {g_error("Unable to get model from cell renderer");}
- gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(model), &row, path_string);
+ gtk_tree_model_get_iter_from_string(model, &row, path_string);
- gtk_tree_model_get_value(GTK_TREE_MODEL(model), &row, 0, &val);
+ gtk_tree_model_get_value(model, &row, 0, &val);
const char *name = g_value_get_string(&val);
Shortcuts::iterator i = g_shortcuts.find(name);
if(i != g_shortcuts.end())
hbox.pack_start( scr, TRUE, TRUE, 0 );
{
- ui::ListStore store = ui::ListStore(gtk_list_store_new( 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INT ));
+ auto store = ui::ListStore::from(gtk_list_store_new( 4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INT ));
- auto view = ui::TreeView(ui::TreeModel(GTK_TREE_MODEL(store)));
+ auto view = ui::TreeView(ui::TreeModel::from(store._handle));
dialog.m_list = view;
- gtk_tree_view_set_enable_search( GTK_TREE_VIEW( view ), false ); // annoying
+ gtk_tree_view_set_enable_search(view, false ); // annoying
{
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 column = ui::TreeViewColumn( "Command", renderer, {{"text", 0}, {"weight-set", 2}, {"weight", 3}} );
+ gtk_tree_view_append_column(view, column );
}
{
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 );
+ auto column = ui::TreeViewColumn( "Key", renderer, {{"text", 1}, {"weight-set", 2}, {"weight", 3}} );
+ gtk_tree_view_append_column(view, column );
}
view.show();