summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/LDFM/DialogController.pm40
-rw-r--r--lib/LDFM/MainController.pm3
-rw-r--r--resources/ldfm-dialog.glade123
-rw-r--r--scripts/ldfm7
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();