Bug 228054. Change hotkey for Exit from E to X. Checkpoint Base64 Decode window.

This commit is contained in:
Jim Norman 2006-12-15 04:41:46 +00:00
parent d9f0649bc0
commit 174b0eb88c
2 changed files with 494 additions and 44 deletions

View File

@ -75,10 +75,12 @@ public class MiCasa : Store
dialogConfirmDelete,
dialogLogin,
dialogLinkKeyValue,
dialogSpecialCharacter;
dialogSpecialCharacter,
dialogDecode;
[Glade.Widget]
Gtk.Menu menuRightClick;
Gtk.Menu menuRightClick,
menuRightClickKeyValue;
[Glade.Widget]
Gtk.Entry entrySecretID,
@ -93,12 +95,15 @@ public class MiCasa : Store
Gtk.CheckButton cbuttonShowPassword,
checkbuttonShowDeleteDialog;
[Glade.Widget]
Gtk.MenuItem cmiNewKey,
cmiDelete,
cmiView,
cmiLink,
cmiCopy;
[Glade.Widget]
Gtk.MenuItem cmiNewKey,
cmiDelete,
cmiView,
cmiLink,
cmiCopy,
menuItemLinkKey,
menuItemDecodeValue;
[Glade.Widget]
Gtk.Notebook notebook2;
@ -113,6 +118,19 @@ public class MiCasa : Store
[Glade.Widget]
Gtk.SpinButton spinbuttonRememberFor;
[Glade.Widget]
Gtk.TextView textviewEncoded,
textviewClear;
[Glade.Widget]
Gtk.Button bttnDecode,
bttnEncode,
bttnExpand,
bttnCloseDecode;
[Glade.Widget]
Gtk.ScrolledWindow scrolledwindowEncoded;
#endregion
@ -298,6 +316,9 @@ public class MiCasa : Store
tvKeyValue.AppendColumn("Linked", new CellRendererText(), "text", 4);
tvKeyValue.RowActivated += new RowActivatedHandler(tvKeyValue_RowActivated);
//tvKeyValue.ButtonReleaseEvent += new ButtonReleaseEventHandler(OnRightClickedKeyValue);
entrySecretID.Text = selected;
SecretStore ss = GetMiCasaStore();
bool bHasLinks = false;
@ -514,6 +535,7 @@ public class MiCasa : Store
tvKeyValue.RemoveColumn(tvKeyValue.GetColumn(1));
tvCol = new TreeViewColumn("Value", cellEditable, "text", 1);
tvKeyValue.InsertColumn(tvCol, 1);
tvKeyValue.ButtonReleaseEvent += new ButtonReleaseEventHandler(OnRightClickedKeyValue);
}
else if (true == cbuttonShowPassword.Active)
{
@ -541,6 +563,7 @@ public class MiCasa : Store
tvKeyValue.RemoveColumn(tvKeyValue.GetColumn(1));
tvCol = new TreeViewColumn("Value", cellEditable, "text", 2);
tvKeyValue.InsertColumn(tvCol, 1);
tvKeyValue.ButtonReleaseEvent -= (OnRightClickedKeyValue);
}
}
}
@ -554,8 +577,9 @@ public class MiCasa : Store
if( 0 == miCASA.SetMasterPassword(0, entryMasterPassword3.Text) )
{
tvKeyValue.RemoveColumn(tvKeyValue.GetColumn(1));
tvCol = new TreeViewColumn("Value", cellEditable, "text", 1);
tvKeyValue.InsertColumn(tvCol, 1);
tvCol = new TreeViewColumn("Value", cellEditable, "text", 1);
tvKeyValue.InsertColumn(tvCol, 1);
tvKeyValue.ButtonReleaseEvent += new ButtonReleaseEventHandler(OnRightClickedKeyValue);
// get seconds to remember
m_sRememberFor = spinbuttonRememberFor.Text;
@ -627,6 +651,7 @@ public class MiCasa : Store
tvCol = new TreeViewColumn("Value", cellEditable, "text", 2);
tvKeyValue.InsertColumn(tvCol, 1);
cbuttonShowPassword.Active = false;
tvKeyValue.ButtonReleaseEvent -= (OnRightClickedKeyValue);
}
catch (Exception e)
{
@ -1335,6 +1360,139 @@ public class MiCasa : Store
md.Destroy();
}
}
// handlers for keyvalue context menu
public void OnRightClickedKeyValue(object obj, ButtonReleaseEventArgs args)
{
Logger.DbgLog("GUI:MiCasa.OnRightClickedKeyValue() - BEGIN");
if (3 == args.Event.Button)
{
try
{
Logger.DbgLog("GUI:MiCasa.OnRightClickedKeyValue() - Context menu opened.");
Glade.XML gxmlTemp = new Glade.XML(Common.GladeFile, "menuRightClickKeyValue", null);
gxmlTemp.Autoconnect(this);
menuRightClickKeyValue.Popup(null, null, null, IntPtr.Zero, 3, Gtk.Global.CurrentEventTime);
}
catch (Exception exp)
{
Logger.DbgLog("GUI:MiCasa.OnRightClickedKeyValue() - EXCEPTION:" + exp.ToString());
}
}
Logger.DbgLog("GUI:MiCasa.OnRightClickedKeyValue() - BEGIN");
}
private void on_menuItemLinkKey_activate(object o, EventArgs args)
{
// display link dialog
tvKeyValue_RowActivated(o, null);
}
private void on_menuItemDecodeValue_activate(object o, EventArgs args)
{
// get selected key/value
// display decode window
TreeModel model;
TreeIter iter;
string selected=null;
string value = null;
if (tvKeyValue.Selection.GetSelected(out model, out iter))
{
selected = (string)model.GetValue(iter, 0);
value = (string)model.GetValue(iter, 1);
if ((value == null) || (value.Length <1))
{
// read value from store
SecretStore ss = GetMiCasaStore();
Secret secret = ss.getSecret(entrySecretID.Text);
value = secret.getKeyValue(selected);
// strip of header data
byte[] baValue = System.Text.Encoding.ASCII.GetBytes(value);
byte[] baTarget = new byte[baValue.Length - 16];
Array.Copy(baValue, 13, baTarget, 0, baValue.Length - 16);
try
{
baValue = Convert.FromBase64String(System.Text.Encoding.ASCII.GetString(baTarget));
value = System.Text.Encoding.ASCII.GetString(baValue);
}
catch (Exception e)
{
value = e.ToString();
}
}
if (selected != null && selected.Length > 0)
{
Glade.XML gxmlTemp = new Glade.XML(Common.GladeFile, "dialogDecode", null);
gxmlTemp.Autoconnect(this);
// display values
textviewClear.Buffer.Text = value;
// hook up button handlers
bttnDecode.Clicked += new EventHandler(bttnDecode_Clicked);
bttnEncode.Clicked += new EventHandler(bttnEncode_Clicked);
bttnExpand.Clicked += new EventHandler(bttnExpand_Clicked);
dialogDecode.TransientFor = (Gtk.Window)CasaMain.gxmlMain.GetWidget("dialogManageSecret");
dialogDecode.Modal = true;
dialogDecode.Show();
}
}
}
void bttnExpand_Clicked(object sender, EventArgs e)
{
bttnDecode.Visible =
bttnEncode.Visible =
textviewEncoded.Visible =
scrolledwindowEncoded.Visible = !bttnDecode.Visible;
if (bttnDecode.Visible)
{
bttnExpand.Label = " << ";
}
else
{
bttnExpand.Label = " >> ";
}
}
void bttnEncode_Clicked(object sender, EventArgs e)
{
string sClear = textviewClear.Buffer.Text.Trim();
if (sClear.Length > 0)
{
textviewEncoded.Buffer.Clear();
textviewEncoded.Buffer.Text = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(sClear));
}
}
void bttnDecode_Clicked(object sender, EventArgs e)
{
string sEncoded = textviewEncoded.Buffer.Text.Trim();
if (sEncoded.Length > 0)
{
char[] array = sEncoded.ToCharArray();
byte[] bytes = Convert.FromBase64CharArray(array, 0, array.Length);
textviewClear.Buffer.Text = System.Text.Encoding.ASCII.GetString(bytes);
}
}
private void on_bttnCloseDecode_clicked(object sender, EventArgs args)
{
if (dialogDecode != null)
{
dialogDecode.Destroy();
}
}
}
}
///##################################################################

View File

@ -56,7 +56,7 @@
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="image4349">
<widget class="GtkImage" id="image4481">
<property name="visible">True</property>
<property name="stock">gtk-new</property>
<property name="icon_size">1</property>
@ -78,7 +78,7 @@
<signal name="activate" handler="OnNewSecretActivated" last_modification_time="Tue, 27 Sep 2005 06:02:26 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4350">
<widget class="GtkImage" id="image4482">
<property name="visible">True</property>
<property name="stock">gtk-new</property>
<property name="icon_size">1</property>
@ -99,7 +99,7 @@
<signal name="activate" handler="OnNewKeyActivated" last_modification_time="Tue, 27 Sep 2005 06:02:36 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4351">
<widget class="GtkImage" id="image4483">
<property name="visible">True</property>
<property name="stock">gtk-new</property>
<property name="icon_size">1</property>
@ -125,7 +125,7 @@
<accelerator key="F5" modifiers="0" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image4352">
<widget class="GtkImage" id="image4484">
<property name="visible">True</property>
<property name="stock">gtk-refresh</property>
<property name="icon_size">1</property>
@ -152,7 +152,7 @@
<signal name="activate" handler="OnLockMiCASASecrets" last_modification_time="Mon, 10 Oct 2005 19:51:54 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4353">
<widget class="GtkImage" id="image4485">
<property name="visible">True</property>
<property name="stock">gtk-dialog-authentication</property>
<property name="icon_size">1</property>
@ -173,7 +173,7 @@
<signal name="activate" handler="OnUnLockMiCASASecrets" last_modification_time="Tue, 11 Oct 2005 20:12:35 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4354">
<widget class="GtkImage" id="image4486">
<property name="visible">True</property>
<property name="stock">gtk-open</property>
<property name="icon_size">1</property>
@ -194,7 +194,7 @@
<signal name="activate" handler="OnDestroyMiCASASecrets" last_modification_time="Tue, 11 Oct 2005 20:12:35 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4355">
<widget class="GtkImage" id="image4487">
<property name="visible">True</property>
<property name="stock">gtk-delete</property>
<property name="icon_size">1</property>
@ -221,7 +221,7 @@
<signal name="activate" handler="on_exportSecrets_activate" last_modification_time="Mon, 07 Aug 2006 19:38:42 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4356">
<widget class="GtkImage" id="image4488">
<property name="visible">True</property>
<property name="stock">gtk-floppy</property>
<property name="icon_size">1</property>
@ -242,7 +242,7 @@
<signal name="activate" handler="on_importSecrets_activate" last_modification_time="Mon, 07 Aug 2006 19:38:42 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4357">
<widget class="GtkImage" id="image4489">
<property name="visible">True</property>
<property name="stock">gtk-open</property>
<property name="icon_size">1</property>
@ -264,13 +264,13 @@
<child>
<widget class="GtkImageMenuItem" id="quit1">
<property name="visible">True</property>
<property name="label" translatable="yes">_Exit</property>
<property name="label" translatable="yes">E_xit</property>
<property name="use_underline">True</property>
<signal name="activate" handler="QuitApplication" last_modification_time="Tue, 27 Sep 2005 09:41:56 GMT"/>
<accelerator key="Q" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image4358">
<widget class="GtkImage" id="image4490">
<property name="visible">True</property>
<property name="stock">gtk-quit</property>
<property name="icon_size">1</property>
@ -306,7 +306,7 @@
<accelerator key="F2" modifiers="0" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image4359">
<widget class="GtkImage" id="image4491">
<property name="visible">True</property>
<property name="stock">gtk-zoom-fit</property>
<property name="icon_size">1</property>
@ -327,7 +327,7 @@
<signal name="activate" handler="LinkKeyValue" last_modification_time="Fri, 19 Aug 2005 06:23:15 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4360">
<widget class="GtkImage" id="image4492">
<property name="visible">True</property>
<property name="stock">gtk-jump-to</property>
<property name="icon_size">1</property>
@ -348,7 +348,7 @@
<signal name="activate" handler="CopyKeyValue" last_modification_time="Fri, 19 Aug 2005 06:23:15 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4361">
<widget class="GtkImage" id="image4493">
<property name="visible">True</property>
<property name="stock">gtk-copy</property>
<property name="icon_size">1</property>
@ -376,7 +376,7 @@
<accelerator key="f" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image4362">
<widget class="GtkImage" id="image4494">
<property name="visible">True</property>
<property name="stock">gtk-find-and-replace</property>
<property name="icon_size">1</property>
@ -404,7 +404,7 @@
<accelerator key="Delete" modifiers="0" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image4363">
<widget class="GtkImage" id="image4495">
<property name="visible">True</property>
<property name="stock">gtk-delete</property>
<property name="icon_size">1</property>
@ -438,7 +438,7 @@
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="image4364">
<widget class="GtkImage" id="image4496">
<property name="visible">True</property>
<property name="stock">gtk-execute</property>
<property name="icon_size">1</property>
@ -460,7 +460,7 @@
<signal name="activate" handler="on_konquerer_activate" last_modification_time="Thu, 02 Mar 2006 07:08:06 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4365">
<widget class="GtkImage" id="image4497">
<property name="visible">True</property>
<property name="stock">gtk-execute</property>
<property name="icon_size">1</property>
@ -481,7 +481,7 @@
<signal name="activate" handler="on_kopete_activate" last_modification_time="Thu, 02 Mar 2006 07:08:44 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4366">
<widget class="GtkImage" id="image4498">
<property name="visible">True</property>
<property name="stock">gtk-execute</property>
<property name="icon_size">1</property>
@ -502,7 +502,7 @@
<signal name="activate" handler="on_networkmanager_activate" last_modification_time="Thu, 02 Mar 2006 07:07:54 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4367">
<widget class="GtkImage" id="image4499">
<property name="visible">True</property>
<property name="stock">gtk-execute</property>
<property name="icon_size">1</property>
@ -523,7 +523,7 @@
<signal name="activate" handler="on_gaim_activate" last_modification_time="Thu, 02 Mar 2006 07:07:29 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4368">
<widget class="GtkImage" id="image4500">
<property name="visible">True</property>
<property name="stock">gtk-execute</property>
<property name="icon_size">1</property>
@ -548,7 +548,7 @@
<signal name="activate" handler="ResetMasterPassword" last_modification_time="Wed, 02 Nov 2005 15:28:00 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4369">
<widget class="GtkImage" id="image4501">
<property name="visible">True</property>
<property name="stock">gtk-revert-to-saved</property>
<property name="icon_size">1</property>
@ -575,7 +575,7 @@
<signal name="activate" handler="Preferences" last_modification_time="Fri, 19 Aug 2005 06:40:17 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4370">
<widget class="GtkImage" id="image4502">
<property name="visible">True</property>
<property name="stock">gtk-preferences</property>
<property name="icon_size">1</property>
@ -603,7 +603,7 @@
<accelerator key="F3" modifiers="0" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image4371">
<widget class="GtkImage" id="image4503">
<property name="visible">True</property>
<property name="stock">gtk-properties</property>
<property name="icon_size">1</property>
@ -637,7 +637,7 @@
<signal name="activate" handler="on_create_sample_secrets1_activate" last_modification_time="Fri, 30 Sep 2005 12:58:41 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4372">
<widget class="GtkImage" id="image4504">
<property name="visible">True</property>
<property name="stock">gtk-add</property>
<property name="icon_size">1</property>
@ -658,7 +658,7 @@
<signal name="activate" handler="on_remove_test_secrets1_activate" last_modification_time="Fri, 30 Sep 2005 12:59:05 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4373">
<widget class="GtkImage" id="image4505">
<property name="visible">True</property>
<property name="stock">gtk-remove</property>
<property name="icon_size">1</property>
@ -724,7 +724,7 @@
<accelerator key="F1" modifiers="0" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image4374">
<widget class="GtkImage" id="image4506">
<property name="visible">True</property>
<property name="stock">gtk-help</property>
<property name="icon_size">1</property>
@ -751,7 +751,7 @@
<signal name="activate" handler="About" last_modification_time="Thu, 01 Sep 2005 15:30:28 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image4375">
<widget class="GtkImage" id="image4507">
<property name="visible">True</property>
<property name="stock">gtk-dialog-info</property>
<property name="icon_size">1</property>
@ -15927,4 +15927,296 @@ All other conflicts will be ignored.</property>
</child>
</widget>
<widget class="GtkDialog" id="dialogDecode">
<property name="visible">True</property>
<property name="title" translatable="yes">Decoded value</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
<property name="modal">False</property>
<property name="default_width">500</property>
<property name="default_height">500</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
<property name="has_separator">True</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox16">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="dialog-action_area16">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="helpbutton8">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-help</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-11</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="bttnDecode">
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-cancel</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-6</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="bttnCloseDecode">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-close</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-7</property>
<signal name="clicked" handler="on_bttnCloseDecode_clicked" last_modification_time="Fri, 15 Dec 2006 07:05:24 GMT"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
<child>
<widget class="GtkTable" id="table34">
<property name="visible">True</property>
<property name="n_rows">3</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">0</property>
<property name="column_spacing">0</property>
<child>
<widget class="GtkHBox" id="hbox129">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkButton" id="bttnEncode">
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Encode</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">9</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="bttnDecode">
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Decode</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">12</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="bttnExpand">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes"> &gt;&gt; </property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">9</property>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkScrolledWindow" id="scrolledwindow73">
<property name="border_width">8</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkTextView" id="textviewClear">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="overwrite">False</property>
<property name="accepts_tab">True</property>
<property name="justification">GTK_JUSTIFY_LEFT</property>
<property name="wrap_mode">GTK_WRAP_CHAR</property>
<property name="cursor_visible">True</property>
<property name="pixels_above_lines">0</property>
<property name="pixels_below_lines">0</property>
<property name="pixels_inside_wrap">0</property>
<property name="left_margin">0</property>
<property name="right_margin">0</property>
<property name="indent">0</property>
<property name="text" translatable="yes"></property>
</widget>
</child>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
</packing>
</child>
<child>
<widget class="GtkScrolledWindow" id="scrolledwindowEncoded">
<property name="border_width">8</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkTextView" id="textviewEncoded">
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="overwrite">False</property>
<property name="accepts_tab">True</property>
<property name="justification">GTK_JUSTIFY_LEFT</property>
<property name="wrap_mode">GTK_WRAP_WORD</property>
<property name="cursor_visible">True</property>
<property name="pixels_above_lines">0</property>
<property name="pixels_below_lines">0</property>
<property name="pixels_inside_wrap">0</property>
<property name="left_margin">0</property>
<property name="right_margin">0</property>
<property name="indent">0</property>
<property name="text" translatable="yes"></property>
</widget>
</child>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label325">
<property name="visible">True</property>
<property name="label" translatable="yes"></property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
<widget class="GtkMenu" id="menuRightClickKeyValue">
<child>
<widget class="GtkMenuItem" id="menuItemLinkKey">
<property name="visible">True</property>
<property name="label" translatable="yes">Link key</property>
<property name="use_underline">True</property>
<signal name="activate" handler="on_menuItemLinkKey_activate" last_modification_time="Fri, 08 Dec 2006 20:15:27 GMT"/>
</widget>
</child>
<child>
<widget class="GtkSeparatorMenuItem" id="separator11">
<property name="visible">True</property>
</widget>
</child>
<child>
<widget class="GtkMenuItem" id="menuItemDecodeValue">
<property name="visible">True</property>
<property name="label" translatable="yes">Decode value</property>
<property name="use_underline">True</property>
<signal name="activate" handler="on_menuItemDecodeValue_activate" last_modification_time="Fri, 08 Dec 2006 20:15:27 GMT"/>
</widget>
</child>
</widget>
</glade-interface>