~ubuntu-branches/ubuntu/hardy/avidemux/hardy

« back to all changes in this revision

Viewing changes to avidemux/ADM_userInterfaces/ADM_GTK/ADM_dialog/DIA_jobs_save.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Matvey Kozhev
  • Date: 2007-12-18 13:53:04 UTC
  • mfrom: (1.1.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20071218135304-cdqec2lg2bglyz15
Tags: 1:2.4~preview3-0.0ubuntu1
* Upload to Ubuntu. (LP: #163287, LP: #126572)
* debian/changelog: re-added Ubuntu releases.
* debian/control:
  - Require debhelper >= 5.0.51 (for dh_icons) and imagemagick.
  - Build-depend on libsdl1.2-dev instead of libsdl-dev.
  - Build against newer libx264-dev. (LP: #138854)
  - Removed libamrnb-dev, not in Ubuntu yet.
* debian/rules:
  - Install all icon sizes, using convert (upstream installs none).
  - Added missing calls to dh_installmenu, dh_installman, dh_icons and
    dh_desktop.
* debian/menu, debian/avidemux-qt.menu:
  - Corrected package and executable names.
* debian/avidemux-common.install: Install icons.
* debian/avidemux.common.manpages: Install man/avidemux.1.
* debian/links, debian/avidemux-cli.links, debian/avidemux-gtk.links:
  - Link manpages to avidemux.1.gz.
* debian/install, debian/avidemux-qt.install, debian/avidemux-gtk.desktop,
  debian/avidemux-qt.desktop: Install desktop files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <sys/types.h>
 
2
#include <sys/stat.h>
 
3
#include <unistd.h>
 
4
#include <string.h>
 
5
#include <stdio.h>
 
6
 
 
7
#include <gdk/gdkkeysyms.h>
 
8
#include <gtk/gtk.h>
 
9
 
 
10
 
 
11
#include <gdk/gdkkeysyms.h>
 
12
#include <gtk/gtk.h>
 
13
# include <math.h>
 
14
# include "config.h"
 
15
#include "default.h"
 
16
#include "ADM_toolkit_gtk/ADM_gladeSupport.h"
 
17
#include "ADM_toolkit_gtk/toolkit_gtk.h"
 
18
#include "ADM_toolkit_gtk/toolkit_gtk_include.h"
 
19
#include "ADM_toolkit/toolkit.hxx"
 
20
#include "ADM_toolkit/filesel.h"
 
21
#include "avidemutils.h"
 
22
 
 
23
static GtkWidget       *create_dialog1 (void);
 
24
 
 
25
#define actionBrowse 31
 
26
 
 
27
 
 
28
uint8_t  DIA_job_select(char **jobname, char **filename)
 
29
{
 
30
uint8_t ret=0;
 
31
char *tmp=NULL,*tmp2=NULL;
 
32
        *jobname=NULL;
 
33
        *filename=NULL;
 
34
 
 
35
        GtkWidget *dialog;
 
36
 
 
37
        dialog=create_dialog1();
 
38
        gtk_register_dialog(dialog);
 
39
        gtk_dialog_add_action_widget (GTK_DIALOG (dialog), WID(buttonBrowse),actionBrowse);
 
40
        while(1)
 
41
        {
 
42
                switch(gtk_dialog_run(GTK_DIALOG(dialog)))
 
43
                {
 
44
                        case actionBrowse:
 
45
                                        {
 
46
                                        
 
47
                                        int r;
 
48
                                        char *escape=NULL;
 
49
                                                GUI_FileSelWrite(QT_TR_NOOP("Select Video to Write"),&tmp);
 
50
                                                if(!tmp) continue;
 
51
                                                escape=ADM_escape((ADM_filename *)tmp);
 
52
                                                gtk_editable_delete_text(GTK_EDITABLE(WID(entryOutputFileName)), 0,-1);
 
53
                                                gtk_editable_insert_text(GTK_EDITABLE(WID(entryOutputFileName)), escape, strlen(escape), &r);
 
54
                                                ADM_dealloc(tmp);
 
55
                                                delete [] escape;
 
56
                                        }
 
57
                                        break;
 
58
                        case GTK_RESPONSE_OK: 
 
59
                                        {
 
60
                                           tmp=gtk_editable_get_chars(GTK_EDITABLE (WID(entryOutputFileName)), 0, -1);
 
61
                                           if(!tmp || !*tmp)
 
62
                                           {
 
63
                                             GUI_Error_HIG(QT_TR_NOOP("Invalid filename"),QT_TR_NOOP("Please select or enter a valid filename."));
 
64
                                                        continue;
 
65
                                            }
 
66
                                           tmp2=gtk_editable_get_chars(GTK_EDITABLE (WID(entryJobName)), 0, -1);
 
67
                                           if(!tmp2 || !*tmp2)
 
68
                                           {
 
69
                                             GUI_Error_HIG(QT_TR_NOOP("Invalid jobname"),QT_TR_NOOP("Please select or enter a valid jobname."));
 
70
                                                        continue;
 
71
                                            }
 
72
                                            *jobname=ADM_strdup(tmp2);
 
73
                                            *filename=ADM_strdup(tmp);
 
74
                                            ret=1;
 
75
                                        }
 
76
                        default: goto _nxt;
 
77
                }
 
78
        }
 
79
_nxt:
 
80
        gtk_unregister_dialog(dialog);
 
81
        gtk_widget_destroy(dialog);
 
82
        return ret;
 
83
}
 
84
//**************************************************
 
85
//*************************************
 
86
 
 
87
GtkWidget       *create_dialog1 (void)
 
88
{
 
89
  GtkWidget *SaveJob;
 
90
  GtkWidget *dialog_vbox1;
 
91
  GtkWidget *table1;
 
92
  GtkWidget *buttonBrowse;
 
93
  GtkWidget *alignment1;
 
94
  GtkWidget *hbox1;
 
95
  GtkWidget *image1;
 
96
  GtkWidget *label3;
 
97
  GtkWidget *entryJobName;
 
98
  GtkWidget *entryOutputFileName;
 
99
  GtkWidget *label1;
 
100
  GtkWidget *label2;
 
101
  GtkWidget *dialog_action_area1;
 
102
  GtkWidget *cancelbutton1;
 
103
  GtkWidget *okbutton1;
 
104
  GtkTooltips *tooltips;
 
105
 
 
106
  tooltips = gtk_tooltips_new ();
 
107
 
 
108
  SaveJob = gtk_dialog_new ();
 
109
  gtk_container_set_border_width (GTK_CONTAINER (SaveJob), 6);
 
110
  gtk_window_set_title (GTK_WINDOW (SaveJob), QT_TR_NOOP("Save Job"));
 
111
  gtk_window_set_type_hint (GTK_WINDOW (SaveJob), GDK_WINDOW_TYPE_HINT_DIALOG);
 
112
  gtk_window_set_resizable (GTK_WINDOW (SaveJob), FALSE);
 
113
  gtk_dialog_set_has_separator (GTK_DIALOG (SaveJob), FALSE);
 
114
 
 
115
  dialog_vbox1 = GTK_DIALOG (SaveJob)->vbox;
 
116
  gtk_box_set_spacing (GTK_BOX(dialog_vbox1), 12);
 
117
  gtk_widget_show (dialog_vbox1);
 
118
 
 
119
  table1 = gtk_table_new (2, 3, FALSE);
 
120
  gtk_widget_show (table1);
 
121
  gtk_box_pack_start (GTK_BOX (dialog_vbox1), table1, FALSE, FALSE, 0);
 
122
  gtk_container_set_border_width (GTK_CONTAINER (table1), 6);
 
123
  gtk_table_set_row_spacings (GTK_TABLE (table1), 6);
 
124
  gtk_table_set_col_spacings (GTK_TABLE (table1), 12);
 
125
 
 
126
  buttonBrowse = gtk_button_new ();
 
127
  gtk_widget_show (buttonBrowse);
 
128
  gtk_table_attach (GTK_TABLE (table1), buttonBrowse, 2, 3, 1, 2,
 
129
                    (GtkAttachOptions) (GTK_FILL),
 
130
                    (GtkAttachOptions) (0), 0, 0);
 
131
  gtk_tooltips_set_tip (tooltips, buttonBrowse, QT_TR_NOOP("Select the output file"), NULL);
 
132
 
 
133
  alignment1 = gtk_alignment_new (0.5, 0.5, 0, 0);
 
134
  gtk_widget_show (alignment1);
 
135
  gtk_container_add (GTK_CONTAINER (buttonBrowse), alignment1);
 
136
 
 
137
  hbox1 = gtk_hbox_new (FALSE, 2);
 
138
  gtk_widget_show (hbox1);
 
139
  gtk_container_add (GTK_CONTAINER (alignment1), hbox1);
 
140
 
 
141
  image1 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_BUTTON);
 
142
  gtk_widget_show (image1);
 
143
  gtk_box_pack_start (GTK_BOX (hbox1), image1, FALSE, FALSE, 0);
 
144
 
 
145
  label3 = gtk_label_new_with_mnemonic (QT_TR_NOOP("_Browse..."));
 
146
  gtk_widget_show (label3);
 
147
  gtk_box_pack_start (GTK_BOX (hbox1), label3, FALSE, FALSE, 0);
 
148
 
 
149
  entryJobName = gtk_entry_new ();
 
150
  gtk_widget_show (entryJobName);
 
151
  gtk_table_attach (GTK_TABLE (table1), entryJobName, 1, 2, 0, 1,
 
152
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
 
153
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
 
154
  gtk_tooltips_set_tip (tooltips, entryJobName, QT_TR_NOOP("Job name displayed in the job list and used as the script filename"), NULL);
 
155
  gtk_entry_set_max_length (GTK_ENTRY (entryJobName), 40);
 
156
  gtk_entry_set_width_chars (GTK_ENTRY (entryJobName), 40);
 
157
 
 
158
  entryOutputFileName = gtk_entry_new ();
 
159
  gtk_widget_show (entryOutputFileName);
 
160
  gtk_table_attach (GTK_TABLE (table1), entryOutputFileName, 1, 2, 1, 2,
 
161
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
 
162
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
 
163
  gtk_tooltips_set_tip (tooltips, entryOutputFileName, QT_TR_NOOP("Filename of the audio/video output"), NULL);
 
164
  gtk_entry_set_width_chars (GTK_ENTRY (entryOutputFileName), 40);
 
165
 
 
166
  label1 = gtk_label_new_with_mnemonic (QT_TR_NOOP("_Job name:"));
 
167
  gtk_widget_show (label1);
 
168
  gtk_table_attach (GTK_TABLE (table1), label1, 0, 1, 0, 1,
 
169
                    (GtkAttachOptions) (GTK_FILL),
 
170
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
 
171
  gtk_misc_set_alignment (GTK_MISC (label1), 0, 0.5);
 
172
 
 
173
  label2 = gtk_label_new_with_mnemonic (QT_TR_NOOP("Output _file:"));
 
174
  gtk_widget_show (label2);
 
175
  gtk_table_attach (GTK_TABLE (table1), label2, 0, 1, 1, 2,
 
176
                    (GtkAttachOptions) (GTK_FILL),
 
177
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
 
178
  gtk_misc_set_alignment (GTK_MISC (label2), 0, 0.5);
 
179
 
 
180
  dialog_action_area1 = GTK_DIALOG (SaveJob)->action_area;
 
181
  gtk_widget_show (dialog_action_area1);
 
182
  gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
 
183
 
 
184
  cancelbutton1 = gtk_button_new_from_stock ("gtk-cancel");
 
185
  gtk_widget_show (cancelbutton1);
 
186
  gtk_dialog_add_action_widget (GTK_DIALOG (SaveJob), cancelbutton1, GTK_RESPONSE_CANCEL);
 
187
  GTK_WIDGET_SET_FLAGS (cancelbutton1, GTK_CAN_DEFAULT);
 
188
 
 
189
  okbutton1 = gtk_button_new_from_stock ("gtk-ok");
 
190
  gtk_widget_show (okbutton1);
 
191
  gtk_dialog_add_action_widget (GTK_DIALOG (SaveJob), okbutton1, GTK_RESPONSE_OK);
 
192
  GTK_WIDGET_SET_FLAGS (okbutton1, GTK_CAN_DEFAULT);
 
193
 
 
194
  gtk_label_set_mnemonic_widget (GTK_LABEL (label1), entryJobName);
 
195
  gtk_label_set_mnemonic_widget (GTK_LABEL (label2), entryOutputFileName);
 
196
 
 
197
  /* Store pointers to all widgets, for use by lookup_widget(). */
 
198
  GLADE_HOOKUP_OBJECT_NO_REF (SaveJob, SaveJob, "SaveJob");
 
199
  GLADE_HOOKUP_OBJECT_NO_REF (SaveJob, dialog_vbox1, "dialog_vbox1");
 
200
  GLADE_HOOKUP_OBJECT (SaveJob, table1, "table1");
 
201
  GLADE_HOOKUP_OBJECT (SaveJob, buttonBrowse, "buttonBrowse");
 
202
  GLADE_HOOKUP_OBJECT (SaveJob, alignment1, "alignment1");
 
203
  GLADE_HOOKUP_OBJECT (SaveJob, hbox1, "hbox1");
 
204
  GLADE_HOOKUP_OBJECT (SaveJob, image1, "image1");
 
205
  GLADE_HOOKUP_OBJECT (SaveJob, label3, "label3");
 
206
  GLADE_HOOKUP_OBJECT (SaveJob, entryJobName, "entryJobName");
 
207
  GLADE_HOOKUP_OBJECT (SaveJob, entryOutputFileName, "entryOutputFileName");
 
208
  GLADE_HOOKUP_OBJECT (SaveJob, label1, "label1");
 
209
  GLADE_HOOKUP_OBJECT (SaveJob, label2, "label2");
 
210
  GLADE_HOOKUP_OBJECT_NO_REF (SaveJob, dialog_action_area1, "dialog_action_area1");
 
211
  GLADE_HOOKUP_OBJECT (SaveJob, cancelbutton1, "cancelbutton1");
 
212
  GLADE_HOOKUP_OBJECT (SaveJob, okbutton1, "okbutton1");
 
213
  GLADE_HOOKUP_OBJECT_NO_REF (SaveJob, tooltips, "tooltips");
 
214
 
 
215
  gtk_widget_grab_focus (entryJobName);
 
216
  gtk_widget_grab_default (okbutton1);
 
217
  return SaveJob;
 
218
}
 
219