summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorleo2005-06-12 04:32:09 +0000
committerleo2005-06-12 04:32:09 +0000
commitb583d946cc96c7d70d1577b4064318d7190332ff (patch)
treec31b1f5989f00264e3e7aff88c3e44e98a5752f0 /linux
parentb71fa208b8a800a44773b0aefc946e3d828c5e62 (diff)
Fixed the recent file list.
git-svn-id: http://svn.leocad.org/trunk@407 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'linux')
-rw-r--r--linux/basewnd.cpp30
-rw-r--r--linux/system.cpp22
2 files changed, 14 insertions, 38 deletions
diff --git a/linux/basewnd.cpp b/linux/basewnd.cpp
index e3148c0..5593062 100644
--- a/linux/basewnd.cpp
+++ b/linux/basewnd.cpp
@@ -185,22 +185,22 @@ void BaseWnd::CheckMenuItem (int id, bool check)
gtk_check_menu_item_set_state (GTK_CHECK_MENU_ITEM (m_pMenuItems[id].widget), check);
ignore_commands = false;
}
+#include <stdio.h>
void BaseWnd::SetMenuItemText (int id, const char *text)
{
- guint accel_key = GDK_VoidSymbol;
gboolean underscore;
- gchar *r, *p, *q, *str;
+ gchar *r;
+ const char *p;
gchar *pattern;
gint length;
length = strlen (text);
pattern = g_new (gchar, length+1);
- str = g_strdup (text);
underscore = FALSE;
- p = q = str;
+ p = text;
r = pattern;
while (*p)
@@ -208,15 +208,13 @@ void BaseWnd::SetMenuItemText (int id, const char *text)
if (underscore)
{
if (*p == '&')
- *r++ = ' ';
+ *r++ = *p;
else
{
*r++ = '_';
- if (accel_key == GDK_VoidSymbol)
- accel_key = gdk_keyval_to_lower (*p);
+ *r++ = *p;
}
- *q++ = *p;
underscore = FALSE;
}
else
@@ -224,25 +222,13 @@ void BaseWnd::SetMenuItemText (int id, const char *text)
if (*p == '&')
underscore = TRUE;
else
- {
- *q++ = *p;
- *r++ = ' ';
- }
+ *r++ = *p;
}
p++;
}
- *q = 0;
*r = 0;
- gtk_label_set_text (GTK_LABEL (GTK_BIN (m_pMenuItems[id].widget)->child), str);
- if (accel_key != GDK_VoidSymbol)
- {
- gtk_label_set_pattern (GTK_LABEL (GTK_BIN (m_pMenuItems[id].widget)->child), pattern);
- gtk_widget_add_accelerator (m_pMenuItems[id].widget, "activate_item",
- m_pMenuItems[id].accel, accel_key, (GdkModifierType)0, (GtkAccelFlags)0);
- }
-
+ gtk_label_set_text_with_mnemonic(GTK_LABEL(GTK_BIN(m_pMenuItems[id].widget)->child), pattern);
g_free (pattern);
- g_free (str);
}
diff --git a/linux/system.cpp b/linux/system.cpp
index 065b7a5..dd69289 100644
--- a/linux/system.cpp
+++ b/linux/system.cpp
@@ -544,7 +544,6 @@ void SystemUpdateSelected(unsigned long flags)
void SystemUpdateRecentMenu (String names[4])
{
- GtkAccelGroup *accel = (GtkAccelGroup*)gtk_object_get_data (GTK_OBJECT (((GtkWidget*)(*main_window))), "file_menu_accel");
GtkWidget *item;
char buf[32];
@@ -565,21 +564,12 @@ void SystemUpdateRecentMenu (String names[4])
}
else
{
- char pattern[LC_MAXPATH+4], text[LC_MAXPATH+4];
- gint length;
-
- sprintf (text, "%d- %s", i+1, (char*)names[i]);
- gtk_label_set_text (GTK_LABEL (GTK_BIN (item)->child), text);
-
- length = strlen (text);
- memset (pattern, ' ', length);
- pattern[length] = '\0';
- pattern[0] = '_';
- gtk_label_set_pattern (GTK_LABEL (GTK_BIN (item)->child), pattern);
-
- gtk_widget_show (item);
- gtk_widget_set_sensitive (item, TRUE);
- gtk_widget_add_accelerator (item, "activate_item", accel, text[0], (GdkModifierType)0, (GtkAccelFlags)0);
+ char text[LC_MAXPATH+4];
+
+ sprintf (text, "_%d- %s", i+1, (char*)names[i]);
+ gtk_label_set_text_with_mnemonic(GTK_LABEL(GTK_BIN(item)->child), text);
+ gtk_widget_show(item);
+ gtk_widget_set_sensitive(item, TRUE);
}
}
}