mirror of
https://github.com/leozide/leocad.git
synced 2026-07-28 04:07:11 +00:00
Fixed the recent file list.
This commit is contained in:
+8
-22
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+5
-15
@@ -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;
|
||||
char text[LC_MAXPATH+4];
|
||||
|
||||
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);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user