[pan2: 1/3] buggy
- From: Heinrich MÃller <henmull src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pan2: 1/3] buggy
- Date: Thu, 26 Jan 2012 20:30:52 +0000 (UTC)
commit 40db4da497fbac41b7711b353b190bcb471d3f20
Author: Heinrich MÃller <henmull src gnome org>
Date: Wed Jan 25 08:41:11 2012 +0100
buggy
pan.cbp | 8 +-
pan/data-impl/data-io.cc | 18 --
pan/data-impl/data-io.h | 3 -
pan/gui/Makefile.am | 3 +-
pan/gui/actions.cc | 32 +++-
pan/gui/body-pane.cc | 1 +
pan/gui/hotkeys.cc | 56 ------
pan/gui/hotkeys.h | 31 ----
pan/gui/prefs-ui.cc | 181 ++++++++++++++------
pan/gui/prefs-ui.h | 25 +++
pan/gui/prefs.cc | 17 --
pan/gui/prefs.h | 3 -
pan/icons/icon_article_unread.png.BACKUP.16201.png | Bin 0 -> 593 bytes
pan/icons/icon_article_unread.png.LOCAL.16201.png | Bin 0 -> 593 bytes
pan/icons/icon_article_unread.png.REMOTE.16201.png | Bin 0 -> 438 bytes
pan/icons/icon_prefs_actions.png | Bin 0 -> 887 bytes
pan/icons/icon_prefs_applications.png | Bin 0 -> 669 bytes
pan/icons/icon_prefs_behavior.png | Bin 0 -> 1017 bytes
pan/icons/icon_prefs_colors.png | Bin 0 -> 850 bytes
pan/icons/icon_prefs_extras.png | Bin 0 -> 833 bytes
pan/icons/icon_prefs_fonts.png | Bin 0 -> 654 bytes
pan/icons/icon_prefs_headers.png | Bin 0 -> 696 bytes
pan/icons/icon_prefs_hotkeys.png | Bin 0 -> 514 bytes
pan/icons/icon_prefs_layout.png | Bin 0 -> 508 bytes
pan/icons/icon_prefs_upload.png | Bin 0 -> 584 bytes
25 files changed, 182 insertions(+), 196 deletions(-)
---
diff --git a/pan.cbp b/pan.cbp
index f280e71..08b5c4a 100644
--- a/pan.cbp
+++ b/pan.cbp
@@ -153,6 +153,7 @@
<Unit filename="pan/general/worker-pool.cc" />
<Unit filename="pan/general/worker-pool.h" />
<Unit filename="pan/gui/action-manager.h" />
+ <Unit filename="pan/gui/actions-extern.h" />
<Unit filename="pan/gui/actions.cc" />
<Unit filename="pan/gui/actions.h" />
<Unit filename="pan/gui/body-pane.cc" />
@@ -192,17 +193,10 @@
</Unit>
<Unit filename="pan/gui/gui.cc" />
<Unit filename="pan/gui/gui.h" />
- <Unit filename="pan/gui/header-pane-factory.cc">
- <Option target="all_linux" />
- </Unit>
- <Unit filename="pan/gui/header-pane-factory.h">
- <Option target="all_linux" />
- </Unit>
<Unit filename="pan/gui/header-pane.cc" />
<Unit filename="pan/gui/header-pane.h" />
<Unit filename="pan/gui/hig.cc" />
<Unit filename="pan/gui/hig.h" />
- <Unit filename="pan/gui/hotkeys.cc" />
<Unit filename="pan/gui/license.h" />
<Unit filename="pan/gui/log-ui.cc" />
<Unit filename="pan/gui/log-ui.h" />
diff --git a/pan/data-impl/data-io.cc b/pan/data-impl/data-io.cc
index 9fd9802..4559979 100644
--- a/pan/data-impl/data-io.cc
+++ b/pan/data-impl/data-io.cc
@@ -116,12 +116,6 @@ DataIO :: get_server_filename () const
return get_pan_home_file ("servers.xml");
}
-std::string
-DataIO :: get_hotkey_filename () const
-{
- return get_pan_home_file ("pan.hotkeys");
-}
-
/****
*****
****/
@@ -170,12 +164,6 @@ DataIO :: read_group_headers (const Quark& group) const
}
LineReader*
-DataIO :: read_hotkeys () const
-{
- return new FileLineReader (get_hotkey_filename());
-}
-
-LineReader*
DataIO :: read_file (const StringView& filename) const
{
return new FileLineReader (filename);
@@ -257,12 +245,6 @@ DataIO :: write_group_permissions ()
}
std::ostream*
-DataIO :: write_hotkeys ()
-{
- return write_file (get_hotkey_filename ());
-}
-
-std::ostream*
DataIO :: write_group_headers (const Quark& group)
{
return write_file (get_group_headers_filename (group));
diff --git a/pan/data-impl/data-io.h b/pan/data-impl/data-io.h
index 60f1380..ab0b2cc 100644
--- a/pan/data-impl/data-io.h
+++ b/pan/data-impl/data-io.h
@@ -42,7 +42,6 @@ namespace pan
virtual std::string get_scorefile_name () const;
virtual std::string get_posting_name () const;
virtual std::string get_server_filename () const;
- virtual std::string get_hotkey_filename () const;
virtual void clear_group_headers (const Quark& group);
@@ -51,7 +50,6 @@ namespace pan
virtual LineReader* read_group_headers (const Quark& group) const;
virtual LineReader* read_group_descriptions () const;
virtual LineReader* read_group_permissions () const;
- virtual LineReader* read_hotkeys () const;
virtual std::ostream* write_tasks ();
virtual std::ostream* write_server_properties ();
@@ -59,7 +57,6 @@ namespace pan
virtual std::ostream* write_group_descriptions ();
virtual std::ostream* write_group_permissions ();
virtual std::ostream* write_group_headers (const Quark& group);
- virtual std::ostream* write_hotkeys ();
virtual void write_done (std::ostream*);
virtual LineReader* read_file (const StringView& filename) const;
diff --git a/pan/gui/Makefile.am b/pan/gui/Makefile.am
index 605b8db..0292501 100644
--- a/pan/gui/Makefile.am
+++ b/pan/gui/Makefile.am
@@ -35,8 +35,7 @@ libpangui_a_SOURCES = \
server-ui.cc \
task-pane.cc \
xface.c \
- url.cc \
- hotkeys.cc
+ url.cc
noinst_HEADERS = \
action-manager.h \
diff --git a/pan/gui/actions.cc b/pan/gui/actions.cc
index 329e7e5..27a930d 100644
--- a/pan/gui/actions.cc
+++ b/pan/gui/actions.cc
@@ -22,6 +22,8 @@ extern "C" {
#include <glib/gi18n.h>
#include "gtk-compat.h"
}
+
+#include <pan/general/macros.h>
#include <pan/general/debug.h>
#include <pan/data-impl/data-impl.h>
#include <pan/tasks/task-xover.h>
@@ -30,9 +32,14 @@ extern "C" {
#include "pad.h"
#include "gui.h"
+namespace pan
+{
+ std::map<std::string,std::string> action_trans;
+}
+
using pan::PanUI;
-namespace
+namespace pan
{
PanUI * pan_ui (0);
@@ -767,15 +774,30 @@ namespace
void
pan :: add_actions (PanUI * ui, GtkUIManager * ui_manager, Prefs * p, Data* data)
{
+
+ for (int i=0;i<n_entries;++i)
+ {
+ if (!entries[i].label) continue;
+ action_trans[entries[i].name] = (entries[i].label ? entries[i].label : "");
+ }
+
+ for (int i=0;i<n_toggle_entries;++i)
+ {
+ if (!toggle_entries[i].label) continue;
+ action_trans[toggle_entries[i].name] = (toggle_entries[i].label ? toggle_entries[i].label : "");
+ }
+
+ for (int i=0;i<G_N_ELEMENTS(match_toggle_entries);++i)
+ {
+ if (!match_toggle_entries[i].label) continue;
+ action_trans[match_toggle_entries[i].name] = (match_toggle_entries[i].label ? match_toggle_entries[i].label : "");
+ }
+
pan_ui = ui;
prefs = p;
register_my_builtin_icons ();
- std::map<gchar*,guint> keymap;
-
-// int ret = get_all_hotkeys (keymap);
-
for (GtkToggleActionEntry *it(toggle_entries), *end(it+n_toggle_entries); it!=end; ++it)
{
ensure_tooltip (reinterpret_cast<GtkActionEntry*>(it));
diff --git a/pan/gui/body-pane.cc b/pan/gui/body-pane.cc
index 9a7896c..5ecfc2a 100644
--- a/pan/gui/body-pane.cc
+++ b/pan/gui/body-pane.cc
@@ -1505,6 +1505,7 @@ BodyPane :: populate_popup_cb (GtkTextView *v, GtkMenu *m, gpointer pane)
{
static_cast<BodyPane*>(pane)->populate_popup(v, m);
}
+
void
BodyPane :: populate_popup (GtkTextView *v G_GNUC_UNUSED, GtkMenu *m)
{
diff --git a/pan/gui/prefs-ui.cc b/pan/gui/prefs-ui.cc
index 5320cf1..340bf21 100644
--- a/pan/gui/prefs-ui.cc
+++ b/pan/gui/prefs-ui.cc
@@ -34,20 +34,15 @@ extern "C" {
#include "url.h"
#include "gtk-compat.h"
#include "e-charset-dialog.h"
-#include "hotkeys.h"
+#include "actions-extern.h"
using namespace pan;
-namespace
+namespace pan
{
- std::string get_accel_filename () {
- char * tmp = g_build_filename (file::get_pan_home().c_str(), "accels.txt", NULL);
- std::string ret (tmp);
- g_free (tmp);
- return ret;
- }
+ typedef PrefsDialog::CallBackData CallBackData;
- typedef struct std::map<std::string,GtkAccelKey> keymap_t;
+ typedef std::map<std::string,GtkAccelKey> keymap_t;
struct HotkeyData
{
@@ -59,33 +54,94 @@ namespace
static HotkeyData hotkey_data;
-// void hotkey_entry_icon_press_cb(GtkEntry * entry,
-// GtkEntryIconPosition,
-// GdkEvent *,
-// gpointer gpointer)
-// {
-// char* ptr = static_cast<char*>(gpointer);
-//
-// guint key;
-// GdkModifierType mod;
-//
-// gtk_accelerator_parse (gtk_entry_get_text(entry),&key,&mod);
-//
-// std::cerr<<"click parse "<<ptr<<" "<<key<<" "<<mod<<"\n";
-//
-// GtkAccelKey newkey;
-//
-// // reset the other keybinding
-// gtk_accel_map_change_entry ("", key, mod, true);
-//
-// newkey.accel_key = key;
-// newkey.accel_mods = mod;
-//
-// gtk_accel_map_change_entry (ptr, key, mod, true);
-// hotkey_data.keys[ptr] = newkey;
-// }
+ gboolean hotkey_pressed_cb (GtkWidget *,
+ GdkEvent *event,
+ gpointer user_data)
+ {
+
+ CallBackData* data = static_cast<CallBackData*>(user_data);
+
+ GdkEventKey* key = (GdkEventKey*)event;
+
+// if (key->is_modifier) return false;
+
+ guint keyval = key->keyval;
+ guint state = key->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK);
+
+ GtkAccelKey acc_key;
+ acc_key.accel_key = keyval;
+ acc_key.accel_mods = GdkModifierType(state);
+
+ gtk_accel_map_change_entry(data->name.c_str(), keyval, GdkModifierType(state), true);
+
+ gtk_widget_destroy(data->win);
+
+ hotkey_data.keys[data->name] = acc_key;
+
+ return true;
+ }
+
+}
+
+void
+PrefsDialog :: edit_shortkey (CallBackData* data)
+{
+ GtkAccelKey key;
+
+ GtkWidget * win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title(GTK_WINDOW(win), _("Select a new Hotkey"));
+
+ data->win = win;
+ g_signal_connect(win, "key-press-event", G_CALLBACK(hotkey_pressed_cb), data);
+
+ gtk_widget_set_size_request(win, 400,100);
+
+ gtk_widget_show_all(win);
+
+}
+
+void
+PrefsDialog :: edit_shortkey_cb (GtkMenuItem *mi, gpointer ptr)
+{
+ CallBackData* data = static_cast<CallBackData*>(ptr);
+ data->dialog->edit_shortkey(data);
+}
+
+void
+PrefsDialog :: populate_popup (GtkEntry *e, GtkMenu *m)
+{
+ GtkWidget * mi = gtk_menu_item_new();
+ gtk_widget_show (mi);
+ gtk_menu_shell_prepend (GTK_MENU_SHELL(m), mi);
+
+ GtkWidget * img = gtk_image_new_from_stock (GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU);
+ mi = gtk_image_menu_item_new_with_mnemonic (_("Edit Hotkey"));
+
+ CallBackData* data = (CallBackData*)g_object_get_data(G_OBJECT(e), "data");
+
+ g_signal_connect (mi, "activate", G_CALLBACK(edit_shortkey_cb), data);
+ gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+ gtk_widget_show_all (mi);
+ gtk_menu_shell_prepend (GTK_MENU_SHELL(m), mi);
+}
+
+namespace pan
+{
+
+ std::string get_accel_filename () {
+ char * tmp = g_build_filename (file::get_pan_home().c_str(), "accels.txt", NULL);
+ std::string ret (tmp);
+ g_free (tmp);
+ return ret;
+ }
+
+ void
+ populate_popup_cb (GtkEntry *e, GtkMenu *m, gpointer ptr)
+ {
+ g_object_set_data (G_OBJECT (e), "data", ptr);
+ static_cast<PrefsDialog::CallBackData*>(ptr)->dialog->populate_popup(e, m);
+ }
- // TODO offer replace with context menu!
void hotkey_entry_changed_cb (GtkEntry * e, gpointer gpointer)
{
@@ -135,13 +191,10 @@ namespace
if (it->second.accel_key == key && it->second.accel_mods == mod) { found=true; break;}
}
-
if (found)
{
gtk_entry_set_icon_from_stock(e, GTK_ENTRY_ICON_PRIMARY, GTK_STOCK_DIALOG_WARNING);
gtk_entry_set_icon_tooltip_text (e, GTK_ENTRY_ICON_PRIMARY, _("Error: Shortkey already exists!"));
- gtk_entry_set_icon_activatable(e, GTK_ENTRY_ICON_PRIMARY, true);
-
}
else
{
@@ -162,6 +215,10 @@ namespace
key.accel_mods = accel_mods;
data->keys[accel_path] = key;
+ guint _key;
+ GdkModifierType _mod;
+ GtkAccelKey acc_key;
+
}
@@ -175,7 +232,6 @@ namespace
it->second.accel_key,
it->second.accel_mods,
true);
-
}
// save 'em
@@ -241,13 +297,14 @@ namespace
return t;
}
-
- GtkWidget* new_hotkey_entry (const char* value, const char* name)
+ GtkWidget* new_hotkey_entry (const char* value, const char* name, gpointer ptr)
{
+
GtkWidget * t = gtk_entry_new();
gtk_entry_set_text (GTK_ENTRY(t), value);
g_signal_connect (t, "changed", G_CALLBACK(hotkey_entry_changed_cb), gpointer(name));
-// g_signal_connect (t, "icon-press", G_CALLBACK(hotkey_entry_icon_press_cb), gpointer(name));
+ g_signal_connect (t, "populate-popup", G_CALLBACK(populate_popup_cb), ptr);
+
return t;
}
@@ -298,7 +355,7 @@ namespace
GtkWidget* new_label_with_icon(const char* mnemonic, const char* label, const guint8* line, Prefs& prefs)
{
- const bool show_text =!prefs.get_flag("show-only-icons-in-preftabs", "false");
+ const bool show_text = !prefs.get_flag("show-only-icons-in-preftabs", "false");
GtkWidget* hbox = gtk_hbox_new(false, 2);
GdkPixbuf * pixbuf = gdk_pixbuf_new_from_inline (-1, line, false, 0);
@@ -311,7 +368,7 @@ namespace
return hbox;
}
- void fill_pref_hotkeys(GtkWidget* t, int& row, Prefs& prefs)
+ void fill_pref_hotkeys(GtkWidget* t, int& row, Prefs& prefs, gpointer dialog_ptr)
{
HIG::workarea_add_section_spacer (t, row, hotkey_data.keys.size());
@@ -322,8 +379,20 @@ namespace
foreach (keymap_t, hotkey_data.keys, it)
{
keyval = gtk_accelerator_name (it->second.accel_key, it->second.accel_mods);
- w = new_hotkey_entry(keyval, it->first.c_str());
- l = gtk_label_new(it->first.c_str());
+
+ std::string stripped = it->first;
+ size_t f = stripped.find_last_of("/");
+ stripped = f != std::string::npos ? stripped.substr(f+1,stripped.size()) : stripped;
+
+ CallBackData* data = new CallBackData();
+ data->dialog = (PrefsDialog*)dialog_ptr;
+ if (!it->first.empty()) data->name = it->first;
+ data->value = stripped;
+
+ w = new_hotkey_entry(keyval, it->first.c_str(), data);
+
+ std::string label = action_trans[stripped];
+ l = gtk_label_new(label.c_str());
HIG :: workarea_add_row (t, &row, w, l);
}
}
@@ -531,7 +600,6 @@ namespace
}
}
-
void
PrefsDialog :: update_default_charset_label(const StringView& value)
{
@@ -741,11 +809,16 @@ PrefsDialog :: PrefsDialog (Prefs& prefs, GtkWindow* parent):
GtkWidget * notebook = gtk_notebook_new ();
-#if !GTK_CHECK_VERSION(2,24,0)
- gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK(notebook), true);
-#else
- g_object_set (notebook, "homogeneous", true, NULL);
-#endif
+// remove this for now, it's not needed
+//
+//if (prefs.get_flag("show-only-icons-in-preftabs", false))
+//{
+//#if !GTK_CHECK_VERSION(2,24,0)
+// gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK(notebook), true);
+//#else
+// g_object_set (notebook, "homogeneous", true, NULL);
+//#endif
+//}
gtk_notebook_set_scrollable (GTK_NOTEBOOK(notebook), true);
// Behavior
@@ -898,7 +971,7 @@ PrefsDialog :: PrefsDialog (Prefs& prefs, GtkWindow* parent):
HIG :: workarea_finish (t, &row);
gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Headers"), _("Headers"), icon_prefs_headers, prefs));
- // customizable actionss
+ // customizable actions
row = 0;
t = HIG :: workarea_create ();
@@ -1029,7 +1102,7 @@ PrefsDialog :: PrefsDialog (Prefs& prefs, GtkWindow* parent):
// Hotkeys
row = 0;
t = HIG :: workarea_create ();
- fill_pref_hotkeys(t, row, _prefs);
+ fill_pref_hotkeys(t, row, _prefs, this);
HIG :: workarea_finish (t, &row);
diff --git a/pan/gui/prefs-ui.h b/pan/gui/prefs-ui.h
index ea7bc83..8183cc9 100644
--- a/pan/gui/prefs-ui.h
+++ b/pan/gui/prefs-ui.h
@@ -25,15 +25,33 @@
namespace pan
{
+
class PrefsDialog :
public Prefs::Listener
{
+
+ public:
+
+ struct CallBackData
+ {
+ PrefsDialog* dialog;
+ std::string name;
+ std::string value;
+ GtkWidget* win;
+ };
+
public:
PrefsDialog (Prefs&, GtkWindow*) ;
~PrefsDialog () { }
Prefs& prefs () { return _prefs; }
GtkWidget* root() { return _root; }
+ static void populate_popup_cb (GtkEntry*, GtkMenu*, gpointer);
+ static void edit_shortkey_cb (GtkMenuItem*, gpointer);
+
+ void set_current_hotkey(const char* s) { _hotkey = s; }
+ const char* get_current_hotkey() const { return _hotkey; }
+
private:
Prefs& _prefs;
GtkWidget* _root;
@@ -45,6 +63,13 @@ namespace pan
void on_prefs_string_changed (const StringView& key, const StringView& value) ;
void on_prefs_color_changed (const StringView& key, const GdkColor& color) {}
+ const char* _hotkey;
+
+ public:
+ void populate_popup (GtkEntry*, GtkMenu*);
+ void edit_shortkey (CallBackData* data);
+
+
};
}
diff --git a/pan/gui/prefs.cc b/pan/gui/prefs.cc
index 1b89bc9..653e7c0 100644
--- a/pan/gui/prefs.cc
+++ b/pan/gui/prefs.cc
@@ -31,7 +31,6 @@ extern "C" {
#include <pan/general/log.h>
#include <pan/general/macros.h>
#include "prefs.h"
-#include "hotkeys.h"
using namespace pan;
@@ -381,19 +380,3 @@ Prefs :: get_color_str_wo_fallback (const StringView& key) const
const GdkColor& col(_colors[key]);
return color_to_string (col);
}
-
-//void
-//Prefs :: set_hotkey (const StringView& key, const StringView& value)
-//{
-//// _hotkeys[key] = value;
-//// fire_hotkey_changed (key, value);
-//}
-
-
-//std::string
-//Prefs :: get_hotkey (const StringView& key) const
-//{
-// std::string res;
-// if (!_hotkeys.count(key)) return "";
-// return _hotkeys[key];
-//}
diff --git a/pan/gui/prefs.h b/pan/gui/prefs.h
index 1f2a2a7..c4c1ed3 100644
--- a/pan/gui/prefs.h
+++ b/pan/gui/prefs.h
@@ -119,7 +119,6 @@ namespace pan
public:
void to_string (int indent, std::string& setme) const;
void from_string (const StringView& xml);
- void get_hotkeys ();
private:
struct Geometry {
@@ -140,8 +139,6 @@ namespace pan
mutable colors_t _colors;
typedef std::map<std::string,int> ints_t;
mutable ints_t _ints;
- typedef std::map<std::string,std::string> hotkeys_t;
- mutable hotkeys_t _hotkeys;
public:
diff --git a/pan/icons/icon_article_unread.png.BACKUP.16201.png b/pan/icons/icon_article_unread.png.BACKUP.16201.png
new file mode 100644
index 0000000..752d08c
Binary files /dev/null and b/pan/icons/icon_article_unread.png.BACKUP.16201.png differ
diff --git a/pan/icons/icon_article_unread.png.LOCAL.16201.png b/pan/icons/icon_article_unread.png.LOCAL.16201.png
new file mode 100644
index 0000000..752d08c
Binary files /dev/null and b/pan/icons/icon_article_unread.png.LOCAL.16201.png differ
diff --git a/pan/icons/icon_article_unread.png.REMOTE.16201.png b/pan/icons/icon_article_unread.png.REMOTE.16201.png
new file mode 100644
index 0000000..211ff9b
Binary files /dev/null and b/pan/icons/icon_article_unread.png.REMOTE.16201.png differ
diff --git a/pan/icons/icon_prefs_actions.png b/pan/icons/icon_prefs_actions.png
new file mode 100644
index 0000000..6dd49bb
Binary files /dev/null and b/pan/icons/icon_prefs_actions.png differ
diff --git a/pan/icons/icon_prefs_applications.png b/pan/icons/icon_prefs_applications.png
new file mode 100644
index 0000000..fac36a1
Binary files /dev/null and b/pan/icons/icon_prefs_applications.png differ
diff --git a/pan/icons/icon_prefs_behavior.png b/pan/icons/icon_prefs_behavior.png
new file mode 100644
index 0000000..81857cd
Binary files /dev/null and b/pan/icons/icon_prefs_behavior.png differ
diff --git a/pan/icons/icon_prefs_colors.png b/pan/icons/icon_prefs_colors.png
new file mode 100644
index 0000000..287a344
Binary files /dev/null and b/pan/icons/icon_prefs_colors.png differ
diff --git a/pan/icons/icon_prefs_extras.png b/pan/icons/icon_prefs_extras.png
new file mode 100644
index 0000000..43916a0
Binary files /dev/null and b/pan/icons/icon_prefs_extras.png differ
diff --git a/pan/icons/icon_prefs_fonts.png b/pan/icons/icon_prefs_fonts.png
new file mode 100644
index 0000000..7047aea
Binary files /dev/null and b/pan/icons/icon_prefs_fonts.png differ
diff --git a/pan/icons/icon_prefs_headers.png b/pan/icons/icon_prefs_headers.png
new file mode 100644
index 0000000..22e5b23
Binary files /dev/null and b/pan/icons/icon_prefs_headers.png differ
diff --git a/pan/icons/icon_prefs_hotkeys.png b/pan/icons/icon_prefs_hotkeys.png
new file mode 100644
index 0000000..7714d47
Binary files /dev/null and b/pan/icons/icon_prefs_hotkeys.png differ
diff --git a/pan/icons/icon_prefs_layout.png b/pan/icons/icon_prefs_layout.png
new file mode 100644
index 0000000..c723e09
Binary files /dev/null and b/pan/icons/icon_prefs_layout.png differ
diff --git a/pan/icons/icon_prefs_upload.png b/pan/icons/icon_prefs_upload.png
new file mode 100644
index 0000000..c3d0c6e
Binary files /dev/null and b/pan/icons/icon_prefs_upload.png differ
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]