diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2004-07-04 22:34:15 +0000 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2004-07-04 22:34:15 +0000 |
commit | 8440205d3e76356739f0f610ea2519a9d2dc4ec5 (patch) | |
tree | 320b949503c02035087943de062dd9b52eb63209 /mixgtk | |
parent | 2e9c7cb702138afad5e5c138ea3071c7fc1ec940 (diff) | |
download | mdk-8440205d3e76356739f0f610ea2519a9d2dc4ec5.tar.gz mdk-8440205d3e76356739f0f610ea2519a9d2dc4ec5.tar.bz2 |
new menu item to change all fonts at once.
Diffstat (limited to 'mixgtk')
-rw-r--r-- | mixgtk/mixgtk.glade | 47 | ||||
-rw-r--r-- | mixgtk/mixgtk_cmd_dispatcher.c | 9 | ||||
-rw-r--r-- | mixgtk/mixgtk_cmd_dispatcher.h | 15 | ||||
-rw-r--r-- | mixgtk/mixgtk_device.c | 32 | ||||
-rw-r--r-- | mixgtk/mixgtk_device.h | 3 | ||||
-rw-r--r-- | mixgtk/mixgtk_fontsel.c | 42 | ||||
-rw-r--r-- | mixgtk/mixgtk_fontsel.h | 3 | ||||
-rw-r--r-- | mixgtk/mixgtk_mixal.c | 19 | ||||
-rw-r--r-- | mixgtk/mixgtk_mixal.h | 5 | ||||
-rw-r--r-- | mixgtk/mixgtk_mixvm.c | 43 | ||||
-rw-r--r-- | mixgtk/mixgtk_mixvm.h | 5 |
11 files changed, 171 insertions, 52 deletions
diff --git a/mixgtk/mixgtk.glade b/mixgtk/mixgtk.glade index aaac693..0f8b6bc 100644 --- a/mixgtk/mixgtk.glade +++ b/mixgtk/mixgtk.glade @@ -12,6 +12,7 @@ <property name="default_height">550</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> + <property name="role">gmixvm-main</property> <property name="decorated">True</property> <property name="skip_taskbar_hint">False</property> <property name="skip_pager_hint">False</property> @@ -48,7 +49,7 @@ <accelerator key="O" modifiers="GDK_CONTROL_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image362"> + <widget class="GtkImage" id="image376"> <property name="visible">True</property> <property name="stock">gtk-open</property> <property name="icon_size">1</property> @@ -71,7 +72,7 @@ <accelerator key="E" modifiers="GDK_CONTROL_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image363"> + <widget class="GtkImage" id="image377"> <property name="visible">True</property> <property name="stock">gtk-justify-fill</property> <property name="icon_size">1</property> @@ -94,7 +95,7 @@ <accelerator key="B" modifiers="GDK_CONTROL_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image364"> + <widget class="GtkImage" id="image378"> <property name="visible">True</property> <property name="stock">gtk-execute</property> <property name="icon_size">1</property> @@ -123,7 +124,7 @@ <accelerator key="Q" modifiers="GDK_CONTROL_MASK | GDK_MOD1_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image365"> + <widget class="GtkImage" id="image379"> <property name="visible">True</property> <property name="stock">gtk-quit</property> <property name="icon_size">1</property> @@ -159,7 +160,7 @@ <accelerator key="R" modifiers="GDK_CONTROL_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image366"> + <widget class="GtkImage" id="image380"> <property name="visible">True</property> <property name="stock">gtk-go-forward</property> <property name="icon_size">1</property> @@ -182,7 +183,7 @@ <accelerator key="N" modifiers="GDK_CONTROL_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image367"> + <widget class="GtkImage" id="image381"> <property name="visible">True</property> <property name="stock">gtk-goto-last</property> <property name="icon_size">1</property> @@ -205,7 +206,7 @@ <accelerator key="C" modifiers="GDK_CONTROL_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image368"> + <widget class="GtkImage" id="image382"> <property name="visible">True</property> <property name="stock">gtk-clear</property> <property name="icon_size">1</property> @@ -228,7 +229,7 @@ <accelerator key="Y" modifiers="GDK_CONTROL_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image369"> + <widget class="GtkImage" id="image383"> <property name="visible">True</property> <property name="stock">gtk-index</property> <property name="icon_size">1</property> @@ -270,7 +271,7 @@ <property name="use_underline">True</property> <child internal-child="image"> - <widget class="GtkImage" id="image370"> + <widget class="GtkImage" id="image384"> <property name="visible">True</property> <property name="stock">gtk-dnd-multiple</property> <property name="icon_size">1</property> @@ -335,7 +336,7 @@ <property name="use_underline">True</property> <child internal-child="image"> - <widget class="GtkImage" id="image371"> + <widget class="GtkImage" id="image385"> <property name="visible">True</property> <property name="stock">gtk-select-font</property> <property name="icon_size">1</property> @@ -393,6 +394,22 @@ <signal name="activate" handler="on_devices_font_activate"/> </widget> </child> + + <child> + <widget class="GtkSeparatorMenuItem" id="separator4"> + <property name="visible">True</property> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="all_fonts"> + <property name="visible">True</property> + <property name="tooltip" translatable="yes">Change all fonts at once</property> + <property name="label" translatable="yes">_All</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_all_fonts_activate" last_modification_time="Sat, 03 Jul 2004 00:34:07 GMT"/> + </widget> + </child> </widget> </child> </widget> @@ -407,7 +424,7 @@ <signal name="activate" handler="on_devform_activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image372"> + <widget class="GtkImage" id="image386"> <property name="visible">True</property> <property name="stock">gtk-zoom-100</property> <property name="icon_size">1</property> @@ -428,7 +445,7 @@ <signal name="activate" handler="on_devdir_activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image373"> + <widget class="GtkImage" id="image387"> <property name="visible">True</property> <property name="stock">gtk-home</property> <property name="icon_size">1</property> @@ -449,7 +466,7 @@ <signal name="activate" handler="on_external_programs_activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image374"> + <widget class="GtkImage" id="image388"> <property name="visible">True</property> <property name="stock">gtk-preferences</property> <property name="icon_size">1</property> @@ -477,7 +494,7 @@ <signal name="activate" handler="on_save_activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image375"> + <widget class="GtkImage" id="image389"> <property name="visible">True</property> <property name="stock">gtk-save</property> <property name="icon_size">1</property> @@ -522,7 +539,7 @@ <signal name="activate" handler="on_about_activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image376"> + <widget class="GtkImage" id="image390"> <property name="visible">True</property> <property name="stock">gtk-help</property> <property name="icon_size">1</property> diff --git a/mixgtk/mixgtk_cmd_dispatcher.c b/mixgtk/mixgtk_cmd_dispatcher.c index a87913b..1ea7df7 100644 --- a/mixgtk/mixgtk_cmd_dispatcher.c +++ b/mixgtk/mixgtk_cmd_dispatcher.c @@ -1,7 +1,7 @@ /* -*-c-*- -------------- mixgtk_cmd_dispatcher.c : * Implementation of the functions declared in mixgtk_cmd_dispatcher.h * ------------------------------------------------------------------ - * $Id: mixgtk_cmd_dispatcher.c,v 1.18 2004/07/02 00:06:26 jao Exp $ + * $Id: mixgtk_cmd_dispatcher.c,v 1.19 2004/07/04 22:34:15 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. * @@ -539,3 +539,10 @@ on_prompt_font_activate () GtkWidget *w[] = { dis_data_.prompt }; mixgtk_fontsel_query_font (MIX_FONT_PROMPT, w, 1); } + +void +mixgtk_cmd_dispatcher_update_fonts (void) +{ + mixgtk_fontsel_set_font (MIX_FONT_LOG, dis_data_.log); + mixgtk_fontsel_set_font (MIX_FONT_PROMPT, dis_data_.prompt); +} diff --git a/mixgtk/mixgtk_cmd_dispatcher.h b/mixgtk/mixgtk_cmd_dispatcher.h index 6ea840c..d72160f 100644 --- a/mixgtk/mixgtk_cmd_dispatcher.h +++ b/mixgtk/mixgtk_cmd_dispatcher.h @@ -1,24 +1,24 @@ /* -*-c-*- ---------------- mixgtk_cmd_dispatcher.h : * functions to access the command dispatcher * ------------------------------------------------------------------ - * Last change: Time-stamp: <01/03/09 22:08:08 jose> + * $Id: mixgtk_cmd_dispatcher.h,v 1.5 2004/07/04 22:34:15 jao Exp $ * ------------------------------------------------------------------ - * Copyright (C) 2001 Free Software Foundation, Inc. - * + * Copyright (C) 2001, 2004 Free Software Foundation, Inc. + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * + * */ @@ -33,6 +33,9 @@ extern gboolean mixgtk_cmd_dispatcher_init (mixgtk_dialog_id_t top); +extern void +mixgtk_cmd_dispatcher_update_fonts (void); + /* dispatch an externally provided command */ extern void mixgtk_cmd_dispatcher_dispatch (const gchar *command); diff --git a/mixgtk/mixgtk_device.c b/mixgtk/mixgtk_device.c index 1b3a78a..30e5bf3 100644 --- a/mixgtk/mixgtk_device.c +++ b/mixgtk/mixgtk_device.c @@ -1,7 +1,7 @@ /* -*-c-*- ---------------- mixgtk_device.c : * actual types for mixgtk devices * ------------------------------------------------------------------ - * $Id: mixgtk_device.c,v 1.24 2004/07/02 00:08:28 jao Exp $ + * $Id: mixgtk_device.c,v 1.25 2004/07/04 22:34:15 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. * @@ -578,8 +578,11 @@ on_devdir_ok_clicked () g_free (cmd); } -void -on_devices_font_activate () + + +/* fonts */ +static GtkWidget ** +font_widgets_ (gint * n) { gint no = gtk_notebook_get_n_pages (dev_nb_); GtkWidget **w = g_new (GtkWidget *, no + 1); @@ -595,7 +598,28 @@ on_devices_font_activate () g_assert (k == no); w[k] = GTK_WIDGET (dev_nb_); - mixgtk_fontsel_query_font (MIX_FONT_DEVICES, w, no + 1); + if (n) *n = no; + return w; +} + +void +on_devices_font_activate () +{ + gint no = 0; + GtkWidget **w = font_widgets_ (&no); + mixgtk_fontsel_query_font (MIX_FONT_DEVICES, w, no + 1); g_free (w); } + +void +mixgtk_device_update_fonts (void) +{ + gint k, n = 0; + GtkWidget **w = font_widgets_ (&n); + + g_assert (n >= 0); + + for (k = 0; k < n; ++k) + mixgtk_fontsel_set_font (MIX_FONT_DEVICES, w[k]); +} diff --git a/mixgtk/mixgtk_device.h b/mixgtk/mixgtk_device.h index b15cbb4..a4f095f 100644 --- a/mixgtk/mixgtk_device.h +++ b/mixgtk/mixgtk_device.h @@ -33,6 +33,9 @@ extern GtkWidget * mixgtk_device_init (mix_vm_t *vm); +extern void +mixgtk_device_update_fonts (void); + /* change the output format of a device */ extern void mixgtk_device_set_format (mix_device_type_t dev, gboolean dec); diff --git a/mixgtk/mixgtk_fontsel.c b/mixgtk/mixgtk_fontsel.c index 59849b1..37cc9c8 100644 --- a/mixgtk/mixgtk_fontsel.c +++ b/mixgtk/mixgtk_fontsel.c @@ -1,7 +1,7 @@ /* -*-c-*- -------------- mixgtk_fontsel.c : * Implementation of the functions declared in mixgtk_fontsel.h * ------------------------------------------------------------------ - * $Id: mixgtk_fontsel.c,v 1.16 2004/06/24 01:40:47 jao Exp $ + * $Id: mixgtk_fontsel.c,v 1.17 2004/07/04 22:34:15 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2004 Free Software Foundation, Inc. * @@ -24,12 +24,17 @@ #include <mixlib/mix.h> #include "mixgtk_widgets.h" #include "mixgtk_config.h" +#include "mixgtk_mixvm.h" +#include "mixgtk_mixal.h" +#include "mixgtk_cmd_dispatcher.h" +#include "mixgtk_device.h" #include "mixgtk_fontsel.h" static GtkFontSelectionDialog *fontsel_dialog_ = NULL; static const gchar *keys_[MIX_FONT_NO] = { - "MIX.font", "Prompt.font", "Log.font", "MIXAL.font", "Devices.font" + "MIX.font", "Prompt.font", "Log.font", "MIXAL.font", "Devices.font", + "Default.font" }; @@ -72,7 +77,7 @@ mixgtk_fontsel_set_font (mixgtk_font_t f, GtkWidget *w) } -extern gboolean +gboolean mixgtk_fontsel_query_font (mixgtk_font_t f, GtkWidget **w, size_t no) { gint result = GTK_RESPONSE_APPLY; @@ -104,3 +109,34 @@ mixgtk_fontsel_query_font (mixgtk_font_t f, GtkWidget **w, size_t no) return ret; } +void +on_all_fonts_activate (void) +{ + gint result = GTK_RESPONSE_APPLY; + const gchar *current; + + if (!fontsel_dialog_) init_fontsel_ (); + + current = mixgtk_config_get (keys_[MIX_FONT_DEFAULT]); + gtk_font_selection_dialog_set_font_name (fontsel_dialog_, + current? current : "Monospace"); + + while (result == GTK_RESPONSE_APPLY) + { + result = gtk_dialog_run (GTK_DIALOG (fontsel_dialog_)); + if (result != GTK_RESPONSE_CANCEL) + { + gint k; + current = gtk_font_selection_dialog_get_font_name (fontsel_dialog_); + + for (k = 0; k < MIX_FONT_NO; ++k) + mixgtk_config_update (keys_[k], current); + + mixgtk_mixal_update_fonts (); + mixgtk_mixvm_update_fonts (); + mixgtk_device_update_fonts (); + mixgtk_cmd_dispatcher_update_fonts (); + } + } + gtk_widget_hide (GTK_WIDGET (fontsel_dialog_)); +} diff --git a/mixgtk/mixgtk_fontsel.h b/mixgtk/mixgtk_fontsel.h index 0b288d4..df2a040 100644 --- a/mixgtk/mixgtk_fontsel.h +++ b/mixgtk/mixgtk_fontsel.h @@ -1,7 +1,7 @@ /* -*-c-*- ---------------- mixgtk_fontsel.h : * Functions for handling font selection. * ------------------------------------------------------------------ - * $Id: mixgtk_fontsel.h,v 1.5 2004/06/24 01:40:47 jao Exp $ + * $Id: mixgtk_fontsel.h,v 1.6 2004/07/04 22:34:15 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2004 Free Software Foundation, Inc. * @@ -34,6 +34,7 @@ typedef enum { MIX_FONT_PROMPT, MIX_FONT_MIXAL, MIX_FONT_DEVICES, + MIX_FONT_DEFAULT, MIX_FONT_NO } mixgtk_font_t; diff --git a/mixgtk/mixgtk_mixal.c b/mixgtk/mixgtk_mixal.c index 1ee9475..3b2d42d 100644 --- a/mixgtk/mixgtk_mixal.c +++ b/mixgtk/mixgtk_mixal.c @@ -1,7 +1,7 @@ /* -*-c-*- -------------- mixgtk_mixal.c : * Implementation of the functions declared in mixgtk_mixal.h * ------------------------------------------------------------------ - * $Id: mixgtk_mixal.c,v 1.19 2004/06/30 14:07:53 jao Exp $ + * $Id: mixgtk_mixal.c,v 1.20 2004/07/04 22:34:15 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. * @@ -83,6 +83,8 @@ init_symbols_ (void) (MIXGTK_SYMBOLS_DIALOG, SYMBOLS_VIEW_NAME_)); g_assert (symbols_view_); + mixgtk_fontsel_set_font (MIX_FONT_DEFAULT, GTK_WIDGET (symbols_view_)); + symbols_store_ = gtk_list_store_new (SYMBOLS_COL_NO, G_TYPE_STRING, G_TYPE_STRING, @@ -241,6 +243,13 @@ mixgtk_mixal_reparent (GtkStatusbar *status) } void +mixgtk_mixal_update_fonts (void) +{ + mixgtk_fontsel_set_font (MIX_FONT_MIXAL, GTK_WIDGET (clist_)); + mixgtk_fontsel_set_font (MIX_FONT_DEFAULT, GTK_WIDGET (symbols_view_)); +} + +void mixgtk_mixal_pop_status (void) { if (status_ != NULL) @@ -548,14 +557,6 @@ on_symbols_activate () } void -on_notebook_switch_page (GtkNotebook *notebook) -{ -/* gint p = gtk_notebook_get_current_page (notebook); */ -/* if (p != MIXAL_TAB_POS_) gtk_statusbar_pop (status_, status_context_); */ -/* if (p == MIXAL_TAB_POS_) mixgtk_mixal_update (); */ -} - -void on_mixal_leave_notify_event () { if (status_ != NULL) gtk_statusbar_pop (status_, status_context_); diff --git a/mixgtk/mixgtk_mixal.h b/mixgtk/mixgtk_mixal.h index 248cf64..5fb7cbb 100644 --- a/mixgtk/mixgtk_mixal.h +++ b/mixgtk/mixgtk_mixal.h @@ -1,7 +1,7 @@ /* -*-c-*- ---------------- mixgtk_mixal.h : * Declarations for functions displaying the mixal source file * ------------------------------------------------------------------ - * $Id: mixgtk_mixal.h,v 1.6 2004/06/30 14:07:53 jao Exp $ + * $Id: mixgtk_mixal.h,v 1.7 2004/07/04 22:34:15 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2004 Free Software Foundation, Inc. * @@ -46,6 +46,9 @@ extern void mixgtk_mixal_update (void); extern void +mixgtk_mixal_update_fonts (void); + +extern void mixgtk_mixal_pop_status (void); /* breakpoints */ diff --git a/mixgtk/mixgtk_mixvm.c b/mixgtk/mixgtk_mixvm.c index cea52bb..10a34e1 100644 --- a/mixgtk/mixgtk_mixvm.c +++ b/mixgtk/mixgtk_mixvm.c @@ -1,7 +1,7 @@ /* -*-c-*- -------------- mixgtk_mixvm.c : * Implementation of the functions declared in mixgtk_mixvm.h * ------------------------------------------------------------------ - * $Id: mixgtk_mixvm.c,v 1.14 2004/07/02 00:09:55 jao Exp $ + * $Id: mixgtk_mixvm.c,v 1.15 2004/07/04 22:34:15 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. * @@ -122,6 +122,34 @@ mixgtk_mixvm_init (mix_vm_t *vm) return TRUE; } +static GtkWidget ** +text_widgets_ (gint *n) +{ + static GtkWidget *w[REGISTER_NO_ + 2] = { NULL}; + + if (w[0] == NULL) + { + gint k; + w[0] = GTK_WIDGET (loc_entry_); + w[1] = GTK_WIDGET (memory_); + for (k = 0; k < REGISTER_NO_; ++k) + w[k + 2] = GTK_WIDGET (reg_entries_[k]); + }; + + if (n) *n = REGISTER_NO_ + 2; + + return w; +} + +void +mixgtk_mixvm_update_fonts (void) +{ + gint k, n = 0; + GtkWidget **w = text_widgets_ (&n); + for (k = 0; k < n; ++k) + mixgtk_fontsel_set_font (MIX_FONT_MIXVM, w[k]); +} + /* update register widgets */ void mixgtk_mixvm_update_registers (void) @@ -329,16 +357,9 @@ mem_cell_ (mix_word_t w, gpointer a) void on_mix_font_activate (void) { - GtkWidget *w[REGISTER_NO_ + 2] = { - GTK_WIDGET (loc_entry_), GTK_WIDGET (memory_) - }; - - gint k; - - for (k = 0; k < REGISTER_NO_; ++k) w[k + 2] = GTK_WIDGET (reg_entries_[k]); - - mixgtk_fontsel_query_font (MIX_FONT_MIXVM, w, REGISTER_NO_ + 2); - + gint n; + GtkWidget **w = text_widgets_ (&n); + mixgtk_fontsel_query_font (MIX_FONT_MIXVM, w, n); } diff --git a/mixgtk/mixgtk_mixvm.h b/mixgtk/mixgtk_mixvm.h index 2288715..6e80f70 100644 --- a/mixgtk/mixgtk_mixvm.h +++ b/mixgtk/mixgtk_mixvm.h @@ -1,7 +1,7 @@ /* -*-c-*- ---------------- mixgtk_mixvm.h : * Functions dealing with the mixvm widgets * ------------------------------------------------------------------ - * $Id: mixgtk_mixvm.h,v 1.4 2004/06/30 14:07:53 jao Exp $ + * $Id: mixgtk_mixvm.h,v 1.5 2004/07/04 22:34:15 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2004 Free Software Foundation, Inc. * @@ -33,6 +33,9 @@ extern gboolean mixgtk_mixvm_init (mix_vm_t *vm); +extern void +mixgtk_mixvm_update_fonts (void); + /* update register widgets */ extern void mixgtk_mixvm_update_registers (void); |