diff options
-rw-r--r-- | lib/LDFM/DialogController.pm | 40 | ||||
-rw-r--r-- | lib/LDFM/MainController.pm | 3 | ||||
-rw-r--r-- | resources/ldfm-dialog.glade | 123 | ||||
-rw-r--r-- | scripts/ldfm | 7 |
4 files changed, 168 insertions, 5 deletions
diff --git a/lib/LDFM/DialogController.pm b/lib/LDFM/DialogController.pm new file mode 100644 index 0000000..eb4936a --- /dev/null +++ b/lib/LDFM/DialogController.pm @@ -0,0 +1,40 @@ +package LDFM::MainController; +use utf8; +use warnings; +use strict; +use base 'Gtk2::GladeXML::Simple'; + +our $VERSION = '0.01'; + +sub new { + my ($class,%params)=@_; + + my $glade_file=dir($params{glade_dir})->file('ldfm-dialog.glade'); + my $self=$class->SUPER::new($glade_file); + + $self->{domanda}->set_text($params{domanda}); + + $self->{risposta}->set_text($params{risposta}||''); + + return $self; +} + +sub run { + my ($self)=@_; + + $self->{dialog}->set_default_response('ok'); + + my $response=$self->{dialog}->run(); + + if ($response eq 'ok') { + my $data=$self->{risposta}->get_text(); + $self->{dialog}->destroy(); + + return $data; + } + else { + return; + } +} + +1; diff --git a/lib/LDFM/MainController.pm b/lib/LDFM/MainController.pm index 2f573cc..09639c4 100644 --- a/lib/LDFM/MainController.pm +++ b/lib/LDFM/MainController.pm @@ -12,7 +12,8 @@ our $VERSION = '0.01'; sub new { my ($class,%params)=@_; - my $self=$class->SUPER::new($params{glade_file}); + my $glade_file=dir($params{glade_dir})->file('ldfm-main.glade'); + my $self=$class->SUPER::new($glade_file); # cambio le liste con qualcosa di più comodo $self->simplify_list('left'); diff --git a/resources/ldfm-dialog.glade b/resources/ldfm-dialog.glade new file mode 100644 index 0000000..ab20668 --- /dev/null +++ b/resources/ldfm-dialog.glade @@ -0,0 +1,123 @@ +<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> +<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> + +<glade-interface> + +<widget class="GtkDialog" id="dialog"> + <property name="visible">True</property> + <property name="title" translatable="yes">Domanda</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">True</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="has_separator">True</property> + + <child internal-child="vbox"> + <widget class="GtkVBox" id="dialog-box"> + <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_area1"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + + <child> + <widget class="GtkButton" id="cancelbutton"> + <property name="visible">True</property> + <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="okbutton"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-ok</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">-5</property> + </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="GtkVBox" id="box"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkLabel" id="domanda"> + <property name="visible">True</property> + <property name="label" translatable="yes">domanda</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">2</property> + <property name="ypad">2</property> + <property name="mnemonic_widget">risposta</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="risposta"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> +</widget> + +</glade-interface> diff --git a/scripts/ldfm b/scripts/ldfm index 62e6246..d8b71ff 100644 --- a/scripts/ldfm +++ b/scripts/ldfm @@ -6,14 +6,13 @@ use Gtk2 '-init'; use Path::Class; use LDFM::MainController; -my $glade_file=file(__FILE__) +my $glade_dir=file(__FILE__) ->parent ->parent - ->subdir('resources') - ->file('ldfm-main.glade'); + ->subdir('resources'); my $main_controller=LDFM::MainController->new( - glade_file => $glade_file + glade_dir => $glade_dir ); $main_controller->run(); |