Files
2023-01-24 19:57:33 -08:00

2025 lines
44 KiB
Plaintext

-:- begin_unit|revision:0.9.5;language:C;cregit-version:0.0.1
-:- begin_comment
1:1 comment|/* * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see<http://www.gnu.org/licenses/>. */
-:- end_comment
-:- begin_ifdef
16:1 ifdef|#
16:2 directive|ifdef
16:8 name|HAVE_CONFIG_H
-:- end_ifdef
-:- begin_include
17:1 include|#
17:4 directive|include
17:12 file|<config.h>
-:- end_include
-:- begin_endif
18:1 endif|#
18:2 directive|endif
-:- end_endif
-:- begin_include
20:1 include|#
20:2 directive|include
20:10 file|<sys/stat.h>
-:- end_include
-:- begin_include
21:1 include|#
21:2 directive|include
21:10 file|<string.h>
-:- end_include
-:- begin_include
22:1 include|#
22:2 directive|include
22:10 file|<gtk/gtk.h>
-:- end_include
-:- begin_include
23:1 include|#
23:2 directive|include
23:10 file|<glib/gstdio.h>
-:- end_include
-:- begin_include
24:1 include|#
24:2 directive|include
24:10 file|<libgnomecanvas/libgnomecanvas.h>
-:- end_include
-:- begin_include
26:1 include|#
26:2 directive|include
26:10 file|"xournal.h"
-:- end_include
-:- begin_include
27:1 include|#
27:2 directive|include
27:10 file|"xo-interface.h"
-:- end_include
-:- begin_include
28:1 include|#
28:2 directive|include
28:10 file|"xo-support.h"
-:- end_include
-:- begin_include
29:1 include|#
29:2 directive|include
29:10 file|"xo-callbacks.h"
-:- end_include
-:- begin_include
30:1 include|#
30:2 directive|include
30:10 file|"xo-misc.h"
-:- end_include
-:- begin_include
31:1 include|#
31:2 directive|include
31:10 file|"xo-file.h"
-:- end_include
-:- begin_include
32:1 include|#
32:2 directive|include
32:10 file|"xo-paint.h"
-:- end_include
-:- begin_include
33:1 include|#
33:2 directive|include
33:10 file|"xo-shapes.h"
-:- end_include
-:- begin_decl_stmt
35:1 name|GtkWidget
35:11 modifier|*
35:12 name|winMain
35:19 decl_stmt|;
-:- end_decl_stmt
-:- begin_decl_stmt
36:1 name|GnomeCanvas
36:13 modifier|*
36:14 name|canvas
36:20 decl_stmt|;
-:- end_decl_stmt
-:- begin_decl_stmt
38:1 name|struct
38:8 name|Journal
38:16 name|journal
38:23 decl_stmt|;
-:- end_decl_stmt
-:- begin_comment
38:25 comment|// the journal
-:- end_comment
-:- begin_decl_stmt
39:1 name|struct
39:8 name|BgPdf
39:14 name|bgpdf
39:19 decl_stmt|;
-:- end_decl_stmt
-:- begin_comment
39:22 comment|// the PDF loader stuff
-:- end_comment
-:- begin_decl_stmt
40:1 name|struct
40:8 name|UIData
40:15 name|ui
40:17 decl_stmt|;
-:- end_decl_stmt
-:- begin_comment
40:21 comment|// the user interface data
-:- end_comment
-:- begin_decl_stmt
41:1 name|struct
41:8 name|UndoItem
41:17 modifier|*
41:18 name|undo
41:22 decl_stmt|,
41:24 modifier|*
41:25 name|redo
41:29 decl_stmt|;
-:- end_decl_stmt
-:- begin_comment
41:31 comment|// the undo and redo stacks
-:- end_comment
-:- begin_decl_stmt
43:1 name|double
43:8 name|DEFAULT_ZOOM
43:20 decl_stmt|;
-:- end_decl_stmt
-:- begin_function
45:1 name|void
45:6 name|init_stuff
45:17 parameter_list|(
45:18 name|int
45:22 name|argc
45:26 parameter_list|,
45:28 name|char
45:33 modifier|*
45:34 name|argv
45:38 index|[]
45:40 parameter_list|)
46:1 block|{
47:3 name|GtkWidget
47:13 modifier|*
47:14 name|w
47:15 decl_stmt|;
48:3 name|GList
48:9 modifier|*
48:10 name|dev_list
48:18 decl_stmt|;
49:3 name|GdkDevice
49:13 modifier|*
49:14 name|device
49:20 decl_stmt|;
50:3 name|GdkScreen
50:13 modifier|*
50:14 name|screen
50:20 decl_stmt|;
51:3 name|int
51:7 name|i
51:8 decl_stmt|,
51:10 name|j
51:11 decl_stmt|;
52:3 name|struct
52:10 name|Brush
52:16 modifier|*
52:17 name|b
52:18 decl_stmt|;
53:3 name|gboolean
53:12 name|can_xinput
53:22 decl_stmt|,
53:24 name|success
53:31 decl_stmt|;
54:3 name|gchar
54:9 modifier|*
54:10 name|tmppath
54:17 decl_stmt|,
54:19 modifier|*
54:20 name|tmpfn
54:25 decl_stmt|;
56:3 comment|// create some data structures needed to populate the preferences
57:3 name|ui
57:5 operator|.
57:6 name|default_page
57:18 operator|.
57:19 name|bg
57:22 operator|=
57:24 name|g_new
57:29 argument_list|(
57:30 expr|struct
57:37 name|Background
57:47 argument_list|,
57:49 literal|1
57:50 argument_list|)
57:51 expr_stmt|;
59:3 comment|// initialize config file names
60:3 name|tmppath
60:11 operator|=
60:13 name|g_build_filename
60:29 argument_list|(
60:30 name|g_get_home_dir
60:44 argument_list|()
60:46 argument_list|,
60:48 name|CONFIG_DIR
60:58 argument_list|,
60:60 name|NULL
60:64 argument_list|)
60:65 expr_stmt|;
61:3 name|g_mkdir
61:10 argument_list|(
61:11 name|tmppath
61:18 argument_list|,
61:20 literal|0700
61:24 argument_list|)
61:25 expr_stmt|;
61:27 comment|// safer (MRU data may be confidential)
62:3 name|ui
62:5 operator|.
62:6 name|mrufile
62:14 operator|=
62:16 name|g_build_filename
62:32 argument_list|(
62:33 name|tmppath
62:40 argument_list|,
62:42 name|MRU_FILE
62:50 argument_list|,
62:52 name|NULL
62:56 argument_list|)
62:57 expr_stmt|;
63:3 name|ui
63:5 operator|.
63:6 name|configfile
63:17 operator|=
63:19 name|g_build_filename
63:35 argument_list|(
63:36 name|tmppath
63:43 argument_list|,
63:45 name|CONFIG_FILE
63:56 argument_list|,
63:58 name|NULL
63:62 argument_list|)
63:63 expr_stmt|;
64:3 name|g_free
64:9 argument_list|(
64:10 name|tmppath
64:17 argument_list|)
64:18 expr_stmt|;
66:3 comment|// initialize preferences
67:3 name|init_config_default
67:22 argument_list|()
67:24 expr_stmt|;
68:3 name|load_config_from_file
68:24 argument_list|()
68:26 expr_stmt|;
69:3 name|ui
69:5 operator|.
69:6 name|font_name
69:16 operator|=
69:18 name|g_strdup
69:26 argument_list|(
69:27 name|ui
69:29 operator|.
69:30 name|default_font_name
69:47 argument_list|)
69:48 expr_stmt|;
70:3 name|ui
70:5 operator|.
70:6 name|font_size
70:16 operator|=
70:18 name|ui
70:20 operator|.
70:21 name|default_font_size
70:38 expr_stmt|;
71:3 name|ui
71:5 operator|.
71:6 name|hiliter_alpha_mask
71:25 operator|=
71:27 literal|0xffffff00
71:38 operator|+
71:40 call|(
71:41 name|guint
71:46 call|)
71:47 argument_list|(
71:48 literal|255
71:51 operator|*
71:52 name|ui
71:54 operator|.
71:55 name|hiliter_opacity
71:70 argument_list|)
71:71 expr_stmt|;
73:3 comment|// we need an empty canvas prior to creating the journal structures
74:3 name|canvas
74:10 operator|=
74:12 name|GNOME_CANVAS
74:25 argument_list|(
74:26 name|gnome_canvas_new_aa
74:46 argument_list|()
74:48 argument_list|)
74:49 expr_stmt|;
76:3 comment|// initialize data
77:3 name|ui
77:5 operator|.
77:6 name|default_page
77:18 operator|.
77:19 name|bg
77:21 operator|->
77:23 name|canvas_item
77:35 operator|=
77:37 name|NULL
77:41 expr_stmt|;
78:3 name|ui
78:5 operator|.
78:6 name|layerbox_length
78:22 operator|=
78:24 literal|0
78:25 expr_stmt|;
80:3 if|if
80:6 condition|(
80:7 name|argc
80:12 operator|>
80:14 literal|2
80:16 operator|||
80:19 operator|(
80:20 name|argc
80:25 operator|==
80:28 literal|2
80:30 operator|&&
80:33 name|argv
80:37 index|[
80:38 literal|1
80:39 index|]
80:40 index|[
80:41 literal|0
80:42 index|]
80:44 operator|==
80:47 literal|'-'
80:50 operator|)
80:51 condition|)
80:53 block|{
81:5 name|printf
81:11 argument_list|(
81:12 name|_
81:13 argument_list|(
81:14 literal|"Invalid command line parameters.\n"
82:12 literal|"Usage: %s [filename.xoj]\n"
82:40 argument_list|)
82:41 argument_list|,
82:43 name|argv
82:47 index|[
82:48 literal|0
82:49 index|]
82:50 argument_list|)
82:51 expr_stmt|;
83:5 name|gtk_exit
83:13 argument_list|(
83:14 literal|0
83:15 argument_list|)
83:16 expr_stmt|;
84:3 block|}
86:3 name|undo
86:8 operator|=
86:10 name|NULL
86:14 expr_stmt|;
86:16 name|redo
86:21 operator|=
86:23 name|NULL
86:27 expr_stmt|;
87:3 name|journal
87:10 operator|.
87:11 name|pages
87:17 operator|=
87:19 name|NULL
87:23 expr_stmt|;
88:3 name|bgpdf
88:8 operator|.
88:9 name|status
88:16 operator|=
88:18 name|STATUS_NOT_INIT
88:33 expr_stmt|;
90:3 name|new_journal
90:14 argument_list|()
90:16 expr_stmt|;
92:3 name|ui
92:5 operator|.
92:6 name|cur_item_type
92:20 operator|=
92:22 name|ITEM_NONE
92:31 expr_stmt|;
93:3 name|ui
93:5 operator|.
93:6 name|cur_item
93:15 operator|=
93:17 name|NULL
93:21 expr_stmt|;
94:3 name|ui
94:5 operator|.
94:6 name|cur_path
94:14 operator|.
94:15 name|coords
94:22 operator|=
94:24 name|NULL
94:28 expr_stmt|;
95:3 name|ui
95:5 operator|.
95:6 name|cur_path_storage_alloc
95:29 operator|=
95:31 literal|0
95:32 expr_stmt|;
96:3 name|ui
96:5 operator|.
96:6 name|cur_path
96:14 operator|.
96:15 name|ref_count
96:25 operator|=
96:27 literal|1
96:28 expr_stmt|;
97:3 name|ui
97:5 operator|.
97:6 name|cur_widths
97:17 operator|=
97:19 name|NULL
97:23 expr_stmt|;
98:3 name|ui
98:5 operator|.
98:6 name|cur_widths_storage_alloc
98:31 operator|=
98:33 literal|0
98:34 expr_stmt|;
100:3 name|ui
100:5 operator|.
100:6 name|selection
100:16 operator|=
100:18 name|NULL
100:22 expr_stmt|;
101:3 name|ui
101:5 operator|.
101:6 name|cursor
101:13 operator|=
101:15 name|NULL
101:19 expr_stmt|;
102:3 name|ui
102:5 operator|.
102:6 name|pen_cursor_pix
102:21 operator|=
102:23 name|ui
102:25 operator|.
102:26 name|hiliter_cursor_pix
102:45 operator|=
102:47 name|NULL
102:51 expr_stmt|;
104:3 name|ui
104:5 operator|.
104:6 name|cur_brush
104:16 operator|=
104:18 operator|&
104:19 operator|(
104:20 name|ui
104:22 operator|.
104:23 name|brushes
104:30 index|[
104:31 literal|0
104:32 index|]
104:33 index|[
104:34 name|ui
104:36 operator|.
104:37 name|toolno
104:43 index|[
104:44 literal|0
104:45 index|]
104:46 index|]
104:47 operator|)
104:48 expr_stmt|;
105:3 for|for
105:7 control|(
105:8 name|j
105:9 operator|=
105:10 literal|0
105:11 init|;
105:13 name|j
105:14 operator|<=
105:16 name|NUM_BUTTONS
105:27 condition|;
105:29 name|j
105:30 operator|++
105:32 control|)
106:5 for|for
106:9 control|(
106:10 name|i
106:11 operator|=
106:12 literal|0
106:13 init|;
106:15 name|i
106:17 operator|<
106:19 name|NUM_STROKE_TOOLS
106:35 condition|;
106:37 name|i
106:38 operator|++
106:40 control|)
106:42 block|{
107:7 name|b
107:9 operator|=
107:11 operator|&
107:12 operator|(
107:13 name|ui
107:15 operator|.
107:16 name|brushes
107:23 index|[
107:24 name|j
107:25 index|]
107:26 index|[
107:27 name|i
107:28 index|]
107:29 operator|)
107:30 expr_stmt|;
108:7 name|b
108:8 operator|->
108:10 name|tool_type
108:20 operator|=
108:22 name|i
108:23 expr_stmt|;
109:7 if|if
109:10 condition|(
109:11 name|b
109:12 operator|->
109:14 name|color_no
109:22 operator|>=
109:24 literal|0
109:25 condition|)
109:27 block|{
110:9 name|b
110:10 operator|->
110:12 name|color_rgba
110:23 operator|=
110:25 name|predef_colors_rgba
110:43 index|[
110:44 name|b
110:45 operator|->
110:47 name|color_no
110:55 index|]
110:56 expr_stmt|;
111:9 if|if
111:12 condition|(
111:13 name|i
111:15 operator|==
111:18 name|TOOL_HIGHLIGHTER
111:34 condition|)
111:36 block|{
112:11 name|b
112:12 operator|->
112:14 name|color_rgba
112:25 operator|&=
112:28 name|ui
112:30 operator|.
112:31 name|hiliter_alpha_mask
112:49 expr_stmt|;
113:9 block|}
114:7 block|}
115:7 name|b
115:8 operator|->
115:10 name|thickness
115:20 operator|=
115:22 name|predef_thickness
115:38 index|[
115:39 name|i
115:40 index|]
115:41 index|[
115:42 name|b
115:43 operator|->
115:45 name|thickness_no
115:57 index|]
115:58 expr_stmt|;
116:5 block|}
117:3 for|for
117:7 control|(
117:8 name|i
117:9 operator|=
117:10 literal|0
117:11 init|;
117:13 name|i
117:14 operator|<
117:15 name|NUM_STROKE_TOOLS
117:31 condition|;
117:33 name|i
117:34 operator|++
117:36 control|)
118:5 name|g_memmove
118:14 argument_list|(
118:15 name|ui
118:17 operator|.
118:18 name|default_brushes
118:33 operator|+
118:34 name|i
118:35 argument_list|,
118:37 operator|&
118:38 operator|(
118:39 name|ui
118:41 operator|.
118:42 name|brushes
118:49 index|[
118:50 literal|0
118:51 index|]
118:52 index|[
118:53 name|i
118:54 index|]
118:55 operator|)
118:56 argument_list|,
118:58 sizeof|sizeof
118:64 argument_list|(
118:65 expr|struct
118:72 name|Brush
118:77 argument_list|)
118:78 argument_list|)
118:79 expr_stmt|;
120:3 name|ui
120:5 operator|.
120:6 name|cur_mapping
120:18 operator|=
120:20 literal|0
120:21 expr_stmt|;
121:3 name|ui
121:5 operator|.
121:6 name|which_unswitch_button
121:28 operator|=
121:30 literal|0
121:31 expr_stmt|;
122:3 name|ui
122:5 operator|.
122:6 name|in_proximity
122:19 operator|=
122:21 name|FALSE
122:26 expr_stmt|;
123:3 name|ui
123:5 operator|.
123:6 name|warned_generate_fontconfig
123:33 operator|=
123:35 name|FALSE
123:40 expr_stmt|;
125:3 name|reset_recognizer
125:19 argument_list|()
125:21 expr_stmt|;
127:3 comment|// initialize various interface elements
129:3 name|gtk_window_set_default_size
129:30 argument_list|(
129:31 name|GTK_WINDOW
129:42 argument_list|(
129:43 name|winMain
129:50 argument_list|)
129:51 argument_list|,
129:53 name|ui
129:55 operator|.
129:56 name|window_default_width
129:76 argument_list|,
129:78 name|ui
129:80 operator|.
129:81 name|window_default_height
129:102 argument_list|)
129:103 expr_stmt|;
130:3 if|if
130:6 condition|(
130:7 name|ui
130:9 operator|.
130:10 name|maximize_at_start
130:27 condition|)
130:29 name|gtk_window_maximize
130:48 argument_list|(
130:49 name|GTK_WINDOW
130:60 argument_list|(
130:61 name|winMain
130:68 argument_list|)
130:69 argument_list|)
130:70 expr_stmt|;
131:3 name|update_toolbar_and_menu
131:26 argument_list|()
131:28 expr_stmt|;
132:3 name|update_font_button
132:21 argument_list|()
132:23 expr_stmt|;
134:3 name|gtk_check_menu_item_set_active
134:33 argument_list|(
135:5 name|GTK_CHECK_MENU_ITEM
135:24 argument_list|(
135:25 name|GET_COMPONENT
135:38 argument_list|(
135:39 literal|"journalApplyAllPages"
135:61 argument_list|)
135:62 argument_list|)
135:63 argument_list|,
135:65 name|ui
135:67 operator|.
135:68 name|bg_apply_all_pages
135:86 argument_list|)
135:87 expr_stmt|;
136:3 name|gtk_check_menu_item_set_active
136:33 argument_list|(
137:5 name|GTK_CHECK_MENU_ITEM
137:24 argument_list|(
137:25 name|GET_COMPONENT
137:38 argument_list|(
137:39 literal|"journalNewPageKeepsBG"
137:62 argument_list|)
137:63 argument_list|)
137:64 argument_list|,
137:66 name|ui
137:68 operator|.
137:69 name|new_page_bg_from_pdf
137:89 argument_list|)
137:90 expr_stmt|;
138:3 if|if
138:6 condition|(
138:7 name|ui
138:9 operator|.
138:10 name|fullscreen
138:20 condition|)
138:22 block|{
139:5 name|gtk_check_menu_item_set_active
139:35 argument_list|(
140:7 name|GTK_CHECK_MENU_ITEM
140:26 argument_list|(
140:27 name|GET_COMPONENT
140:40 argument_list|(
140:41 literal|"viewFullscreen"
140:57 argument_list|)
140:58 argument_list|)
140:59 argument_list|,
140:61 name|TRUE
140:65 argument_list|)
140:66 expr_stmt|;
141:5 name|gtk_toggle_tool_button_set_active
141:38 argument_list|(
142:7 name|GTK_TOGGLE_TOOL_BUTTON
142:29 argument_list|(
142:30 name|GET_COMPONENT
142:43 argument_list|(
142:44 literal|"buttonFullscreen"
142:62 argument_list|)
142:63 argument_list|)
142:64 argument_list|,
142:66 name|TRUE
142:70 argument_list|)
142:71 expr_stmt|;
143:5 name|gtk_window_fullscreen
143:26 argument_list|(
143:27 name|GTK_WINDOW
143:37 argument_list|(
143:38 name|winMain
143:45 argument_list|)
143:46 argument_list|)
143:47 expr_stmt|;
144:3 block|}
145:3 name|gtk_button_set_relief
145:24 argument_list|(
145:25 name|GTK_BUTTON
145:35 argument_list|(
145:36 name|GET_COMPONENT
145:49 argument_list|(
145:50 literal|"buttonColorChooser"
145:70 argument_list|)
145:71 argument_list|)
145:72 argument_list|,
145:74 name|GTK_RELIEF_NONE
145:89 argument_list|)
145:90 expr_stmt|;
147:3 name|allow_all_accels
147:19 argument_list|()
147:21 expr_stmt|;
148:3 name|add_scroll_bindings
148:22 argument_list|()
148:24 expr_stmt|;
150:3 comment|// prevent interface items from stealing focus
151:3 comment|// glade doesn't properly handle can_focus, so manually set it
152:3 name|gtk_combo_box_set_focus_on_click
152:35 argument_list|(
152:36 name|GTK_COMBO_BOX
152:49 argument_list|(
152:50 name|GET_COMPONENT
152:63 argument_list|(
152:64 literal|"comboLayer"
152:76 argument_list|)
152:77 argument_list|)
152:78 argument_list|,
152:80 name|FALSE
152:85 argument_list|)
152:86 expr_stmt|;
153:3 name|g_signal_connect
153:19 argument_list|(
153:20 name|GET_COMPONENT
153:33 argument_list|(
153:34 literal|"spinPageNo"
153:46 argument_list|)
153:47 argument_list|,
153:49 literal|"activate"
153:59 argument_list|,
154:11 name|G_CALLBACK
154:21 argument_list|(
154:22 name|handle_activate_signal
154:44 argument_list|)
154:45 argument_list|,
154:47 name|NULL
154:51 argument_list|)
154:52 expr_stmt|;
155:3 name|gtk_container_forall
155:23 argument_list|(
155:24 name|GTK_CONTAINER
155:37 argument_list|(
155:38 name|winMain
155:45 argument_list|)
155:46 argument_list|,
155:48 name|unset_flags
155:59 argument_list|,
155:61 operator|(
155:62 name|gpointer
155:70 operator|)
155:71 name|GTK_CAN_FOCUS
155:84 argument_list|)
155:85 expr_stmt|;
156:3 name|GTK_WIDGET_SET_FLAGS
156:23 argument_list|(
156:24 name|GTK_WIDGET
156:34 argument_list|(
156:35 name|canvas
156:41 argument_list|)
156:42 argument_list|,
156:44 name|GTK_CAN_FOCUS
156:57 argument_list|)
156:58 expr_stmt|;
157:3 name|GTK_WIDGET_SET_FLAGS
157:23 argument_list|(
157:24 name|GTK_WIDGET
157:34 argument_list|(
157:35 name|GET_COMPONENT
157:48 argument_list|(
157:49 literal|"spinPageNo"
157:61 argument_list|)
157:62 argument_list|)
157:63 argument_list|,
157:65 name|GTK_CAN_FOCUS
157:78 argument_list|)
157:79 expr_stmt|;
159:3 comment|// install hooks on button/key/activation events to make the spinPageNo lose focus
160:3 name|gtk_container_forall
160:23 argument_list|(
160:24 name|GTK_CONTAINER
160:37 argument_list|(
160:38 name|winMain
160:45 argument_list|)
160:46 argument_list|,
160:48 name|install_focus_hooks
160:67 argument_list|,
160:69 name|NULL
160:73 argument_list|)
160:74 expr_stmt|;
162:3 comment|// set up and initialize the canvas
164:3 name|gtk_widget_show
164:19 argument_list|(
164:20 name|GTK_WIDGET
164:31 argument_list|(
164:32 name|canvas
164:38 argument_list|)
164:39 argument_list|)
164:40 expr_stmt|;
165:3 name|w
165:5 operator|=
165:7 name|GET_COMPONENT
165:20 argument_list|(
165:21 literal|"scrolledwindowMain"
165:41 argument_list|)
165:42 expr_stmt|;
166:3 name|gtk_container_add
166:21 argument_list|(
166:22 name|GTK_CONTAINER
166:36 argument_list|(
166:37 name|w
166:38 argument_list|)
166:39 argument_list|,
166:41 name|GTK_WIDGET
166:52 argument_list|(
166:53 name|canvas
166:59 argument_list|)
166:60 argument_list|)
166:61 expr_stmt|;
167:3 name|gtk_scrolled_window_set_policy
167:33 argument_list|(
167:34 name|GTK_SCROLLED_WINDOW
167:54 argument_list|(
167:55 name|w
167:56 argument_list|)
167:57 argument_list|,
167:59 name|GTK_POLICY_AUTOMATIC
167:79 argument_list|,
167:81 name|GTK_POLICY_AUTOMATIC
167:101 argument_list|)
167:102 expr_stmt|;
168:3 name|gtk_widget_set_events
168:25 argument_list|(
168:26 name|GTK_WIDGET
168:37 argument_list|(
168:38 name|canvas
168:44 argument_list|)
168:45 argument_list|,
169:6 name|GDK_EXPOSURE_MASK
169:24 operator||
169:26 name|GDK_POINTER_MOTION_MASK
169:50 operator||
169:52 name|GDK_BUTTON_MOTION_MASK
169:75 operator||
170:6 name|GDK_BUTTON_PRESS_MASK
170:28 operator||
170:30 name|GDK_BUTTON_RELEASE_MASK
170:54 operator||
170:56 name|GDK_KEY_PRESS_MASK
170:75 operator||
171:6 name|GDK_ENTER_NOTIFY_MASK
171:28 operator||
171:30 name|GDK_LEAVE_NOTIFY_MASK
171:52 operator||
172:6 name|GDK_PROXIMITY_IN_MASK
172:28 operator||
172:30 name|GDK_PROXIMITY_OUT_MASK
172:52 argument_list|)
172:53 expr_stmt|;
173:3 name|gnome_canvas_set_pixels_per_unit
173:36 argument_list|(
173:37 name|canvas
173:43 argument_list|,
173:45 name|ui
173:47 operator|.
173:48 name|zoom
173:52 argument_list|)
173:53 expr_stmt|;
174:3 name|gnome_canvas_set_center_scroll_region
174:41 argument_list|(
174:42 name|canvas
174:48 argument_list|,
174:50 name|TRUE
174:54 argument_list|)
174:55 expr_stmt|;
175:3 name|gtk_layout_get_hadjustment
175:29 argument_list|(
175:30 name|GTK_LAYOUT
175:41 argument_list|(
175:42 name|canvas
175:48 argument_list|)
175:49 argument_list|)
175:50 operator|->
175:52 name|step_increment
175:67 operator|=
175:69 name|ui
175:71 operator|.
175:72 name|scrollbar_step_increment
175:96 expr_stmt|;
176:3 name|gtk_layout_get_vadjustment
176:29 argument_list|(
176:30 name|GTK_LAYOUT
176:41 argument_list|(
176:42 name|canvas
176:48 argument_list|)
176:49 argument_list|)
176:50 operator|->
176:52 name|step_increment
176:67 operator|=
176:69 name|ui
176:71 operator|.
176:72 name|scrollbar_step_increment
176:96 expr_stmt|;
178:3 comment|// set up the page size and canvas size
179:3 name|update_page_stuff
179:20 argument_list|()
179:22 expr_stmt|;
181:3 name|g_signal_connect
181:20 argument_list|(
181:21 operator|(
181:22 name|gpointer
181:30 operator|)
181:32 name|canvas
181:38 argument_list|,
181:40 literal|"button_press_event"
181:60 argument_list|,
182:21 name|G_CALLBACK
182:32 argument_list|(
182:33 name|on_canvas_button_press_event
182:61 argument_list|)
182:62 argument_list|,
183:21 name|NULL
183:25 argument_list|)
183:26 expr_stmt|;
184:3 name|g_signal_connect
184:20 argument_list|(
184:21 operator|(
184:22 name|gpointer
184:30 operator|)
184:32 name|canvas
184:38 argument_list|,
184:40 literal|"button_release_event"
184:62 argument_list|,
185:21 name|G_CALLBACK
185:32 argument_list|(
185:33 name|on_canvas_button_release_event
185:63 argument_list|)
185:64 argument_list|,
186:21 name|NULL
186:25 argument_list|)
186:26 expr_stmt|;
187:3 name|g_signal_connect
187:20 argument_list|(
187:21 operator|(
187:22 name|gpointer
187:30 operator|)
187:32 name|canvas
187:38 argument_list|,
187:40 literal|"enter_notify_event"
187:60 argument_list|,
188:21 name|G_CALLBACK
188:32 argument_list|(
188:33 name|on_canvas_enter_notify_event
188:61 argument_list|)
188:62 argument_list|,
189:21 name|NULL
189:25 argument_list|)
189:26 expr_stmt|;
190:3 name|g_signal_connect
190:20 argument_list|(
190:21 operator|(
190:22 name|gpointer
190:30 operator|)
190:32 name|canvas
190:38 argument_list|,
190:40 literal|"leave_notify_event"
190:60 argument_list|,
191:21 name|G_CALLBACK
191:32 argument_list|(
191:33 name|on_canvas_leave_notify_event
191:61 argument_list|)
191:62 argument_list|,
192:21 name|NULL
192:25 argument_list|)
192:26 expr_stmt|;
193:3 name|g_signal_connect
193:20 argument_list|(
193:21 operator|(
193:22 name|gpointer
193:30 operator|)
193:32 name|canvas
193:38 argument_list|,
193:40 literal|"proximity_in_event"
193:60 argument_list|,
194:21 name|G_CALLBACK
194:32 argument_list|(
194:33 name|on_canvas_proximity_event
194:58 argument_list|)
194:59 argument_list|,
195:21 name|NULL
195:25 argument_list|)
195:26 expr_stmt|;
196:3 name|g_signal_connect
196:20 argument_list|(
196:21 operator|(
196:22 name|gpointer
196:30 operator|)
196:32 name|canvas
196:38 argument_list|,
196:40 literal|"proximity_out_event"
196:61 argument_list|,
197:21 name|G_CALLBACK
197:32 argument_list|(
197:33 name|on_canvas_proximity_event
197:58 argument_list|)
197:59 argument_list|,
198:21 name|NULL
198:25 argument_list|)
198:26 expr_stmt|;
199:3 name|g_signal_connect
199:20 argument_list|(
199:21 operator|(
199:22 name|gpointer
199:30 operator|)
199:32 name|canvas
199:38 argument_list|,
199:40 literal|"expose_event"
199:54 argument_list|,
200:21 name|G_CALLBACK
200:32 argument_list|(
200:33 name|on_canvas_expose_event
200:55 argument_list|)
200:56 argument_list|,
201:21 name|NULL
201:25 argument_list|)
201:26 expr_stmt|;
202:3 name|g_signal_connect
202:20 argument_list|(
202:21 operator|(
202:22 name|gpointer
202:30 operator|)
202:32 name|canvas
202:38 argument_list|,
202:40 literal|"key_press_event"
202:57 argument_list|,
203:21 name|G_CALLBACK
203:32 argument_list|(
203:33 name|on_canvas_key_press_event
203:58 argument_list|)
203:59 argument_list|,
204:21 name|NULL
204:25 argument_list|)
204:26 expr_stmt|;
205:3 name|g_signal_connect
205:20 argument_list|(
205:21 operator|(
205:22 name|gpointer
205:30 operator|)
205:32 name|canvas
205:38 argument_list|,
205:40 literal|"motion_notify_event"
205:61 argument_list|,
206:21 name|G_CALLBACK
206:32 argument_list|(
206:33 name|on_canvas_motion_notify_event
206:62 argument_list|)
206:63 argument_list|,
207:21 name|NULL
207:25 argument_list|)
207:26 expr_stmt|;
208:3 name|g_signal_connect
208:20 argument_list|(
208:21 operator|(
208:22 name|gpointer
208:30 operator|)
208:32 name|gtk_layout_get_vadjustment
208:58 argument_list|(
208:59 name|GTK_LAYOUT
208:69 argument_list|(
208:70 name|canvas
208:76 argument_list|)
208:77 argument_list|)
208:78 argument_list|,
209:21 literal|"value-changed"
209:36 argument_list|,
209:38 name|G_CALLBACK
209:49 argument_list|(
209:50 name|on_vscroll_changed
209:68 argument_list|)
209:69 argument_list|,
210:21 name|NULL
210:25 argument_list|)
210:26 expr_stmt|;
211:3 name|g_signal_connect
211:20 argument_list|(
211:21 operator|(
211:22 name|gpointer
211:30 operator|)
211:32 name|gtk_layout_get_hadjustment
211:58 argument_list|(
211:59 name|GTK_LAYOUT
211:69 argument_list|(
211:70 name|canvas
211:76 argument_list|)
211:77 argument_list|)
211:78 argument_list|,
212:21 literal|"value-changed"
212:36 argument_list|,
212:38 name|G_CALLBACK
212:49 argument_list|(
212:50 name|on_hscroll_changed
212:68 argument_list|)
212:69 argument_list|,
213:21 name|NULL
213:25 argument_list|)
213:26 expr_stmt|;
214:3 name|g_object_set_data
214:21 argument_list|(
214:22 name|G_OBJECT
214:31 argument_list|(
214:32 name|winMain
214:39 argument_list|)
214:40 argument_list|,
214:42 literal|"canvas"
214:50 argument_list|,
214:52 name|canvas
214:58 argument_list|)
214:59 expr_stmt|;
216:3 name|screen
216:10 operator|=
216:12 name|gtk_widget_get_screen
216:33 argument_list|(
216:34 name|winMain
216:41 argument_list|)
216:42 expr_stmt|;
217:3 name|ui
217:5 operator|.
217:6 name|screen_width
217:19 operator|=
217:21 name|gdk_screen_get_width
217:41 argument_list|(
217:42 name|screen
217:48 argument_list|)
217:49 expr_stmt|;
218:3 name|ui
218:5 operator|.
218:6 name|screen_height
218:20 operator|=
218:22 name|gdk_screen_get_height
218:43 argument_list|(
218:44 name|screen
218:50 argument_list|)
218:51 expr_stmt|;
220:3 name|can_xinput
220:14 operator|=
220:16 name|FALSE
220:21 expr_stmt|;
221:3 name|dev_list
221:12 operator|=
221:14 name|gdk_devices_list
221:30 argument_list|()
221:32 expr_stmt|;
222:3 while|while
222:9 condition|(
222:10 name|dev_list
222:19 operator|!=
222:22 name|NULL
222:26 condition|)
222:28 block|{
223:5 name|device
223:12 operator|=
223:14 operator|(
223:15 name|GdkDevice
223:25 operator|*
223:26 operator|)
223:27 name|dev_list
223:35 operator|->
223:37 name|data
223:41 expr_stmt|;
224:5 if|if
224:8 condition|(
224:9 name|device
224:16 operator|!=
224:19 name|gdk_device_get_core_pointer
224:46 argument_list|()
224:49 operator|&&
224:52 name|device
224:58 operator|->
224:60 name|num_axes
224:69 operator|>=
224:72 literal|2
224:73 condition|)
224:75 block|{
225:7 comment|/* get around a GDK bug: map the valuator range CORRECTLY to [0,1] */
226:1 ifdef|#
226:2 directive|ifdef
226:8 name|ENABLE_XINPUT_BUGFIX
227:7 name|gdk_device_set_axis_use
227:30 argument_list|(
227:31 name|device
227:37 argument_list|,
227:39 literal|0
227:40 argument_list|,
227:42 name|GDK_AXIS_IGNORE
227:57 argument_list|)
227:58 expr_stmt|;
228:7 name|gdk_device_set_axis_use
228:30 argument_list|(
228:31 name|device
228:37 argument_list|,
228:39 literal|1
228:40 argument_list|,
228:42 name|GDK_AXIS_IGNORE
228:57 argument_list|)
228:58 expr_stmt|;
229:1 endif|#
229:2 directive|endif
230:7 name|gdk_device_set_mode
230:26 argument_list|(
230:27 name|device
230:33 argument_list|,
230:35 name|GDK_MODE_SCREEN
230:50 argument_list|)
230:51 expr_stmt|;
231:7 if|if
231:10 condition|(
231:11 name|g_strrstr
231:20 argument_list|(
231:21 name|device
231:27 operator|->
231:29 name|name
231:33 argument_list|,
231:35 literal|"raser"
231:42 argument_list|)
231:43 condition|)
232:9 name|gdk_device_set_source
232:30 argument_list|(
232:31 name|device
232:37 argument_list|,
232:39 name|GDK_SOURCE_ERASER
232:56 argument_list|)
232:57 expr_stmt|;
233:7 name|can_xinput
233:18 operator|=
233:20 name|TRUE
233:24 expr_stmt|;
234:5 block|}
235:5 name|dev_list
235:14 operator|=
235:16 name|dev_list
235:24 operator|->
235:26 name|next
235:30 expr_stmt|;
236:3 block|}
237:3 if|if
237:6 condition|(
237:7 operator|!
237:8 name|can_xinput
237:18 condition|)
238:5 name|gtk_widget_set_sensitive
238:29 argument_list|(
238:30 name|GET_COMPONENT
238:43 argument_list|(
238:44 literal|"optionsUseXInput"
238:62 argument_list|)
238:63 argument_list|,
238:65 name|FALSE
238:70 argument_list|)
238:71 expr_stmt|;
240:3 name|ui
240:5 operator|.
240:6 name|use_xinput
240:17 operator|=
240:19 name|ui
240:21 operator|.
240:22 name|allow_xinput
240:35 operator|&&
240:38 name|can_xinput
240:48 expr_stmt|;
242:3 name|gtk_check_menu_item_set_active
242:33 argument_list|(
243:5 name|GTK_CHECK_MENU_ITEM
243:24 argument_list|(
243:25 name|GET_COMPONENT
243:38 argument_list|(
243:39 literal|"optionsProgressiveBG"
243:61 argument_list|)
243:62 argument_list|)
243:63 argument_list|,
243:65 name|ui
243:67 operator|.
243:68 name|progressive_bg
243:82 argument_list|)
243:83 expr_stmt|;
244:3 name|gtk_check_menu_item_set_active
244:33 argument_list|(
245:5 name|GTK_CHECK_MENU_ITEM
245:24 argument_list|(
245:25 name|GET_COMPONENT
245:38 argument_list|(
245:39 literal|"optionsPrintRuling"
245:59 argument_list|)
245:60 argument_list|)
245:61 argument_list|,
245:63 name|ui
245:65 operator|.
245:66 name|print_ruling
245:78 argument_list|)
245:79 expr_stmt|;
246:3 name|gtk_check_menu_item_set_active
246:33 argument_list|(
247:5 name|GTK_CHECK_MENU_ITEM
247:24 argument_list|(
247:25 name|GET_COMPONENT
247:38 argument_list|(
247:39 literal|"optionsLegacyPDFExport"
247:63 argument_list|)
247:64 argument_list|)
247:65 argument_list|,
247:67 name|ui
247:69 operator|.
247:70 name|exportpdf_prefer_legacy
247:93 argument_list|)
247:94 expr_stmt|;
248:3 name|gtk_check_menu_item_set_active
248:33 argument_list|(
249:5 name|GTK_CHECK_MENU_ITEM
249:24 argument_list|(
249:25 name|GET_COMPONENT
249:38 argument_list|(
249:39 literal|"optionsLayersPDFExport"
249:63 argument_list|)
249:64 argument_list|)
249:65 argument_list|,
249:67 name|ui
249:69 operator|.
249:70 name|exportpdf_layers
249:86 argument_list|)
249:87 expr_stmt|;
250:3 name|gtk_check_menu_item_set_active
250:33 argument_list|(
251:5 name|GTK_CHECK_MENU_ITEM
251:24 argument_list|(
251:25 name|GET_COMPONENT
251:38 argument_list|(
251:39 literal|"optionsAutoloadPdfXoj"
251:62 argument_list|)
251:63 argument_list|)
251:64 argument_list|,
251:66 name|ui
251:68 operator|.
251:69 name|autoload_pdf_xoj
251:85 argument_list|)
251:86 expr_stmt|;
252:3 name|gtk_check_menu_item_set_active
252:33 argument_list|(
253:5 name|GTK_CHECK_MENU_ITEM
253:24 argument_list|(
253:25 name|GET_COMPONENT
253:38 argument_list|(
253:39 literal|"optionsAutosaveXoj"
253:59 argument_list|)
253:60 argument_list|)
253:61 argument_list|,
253:63 name|ui
253:65 operator|.
253:66 name|autosave_enabled
253:82 argument_list|)
253:83 expr_stmt|;
254:3 name|gtk_check_menu_item_set_active
254:33 argument_list|(
255:5 name|GTK_CHECK_MENU_ITEM
255:24 argument_list|(
255:25 name|GET_COMPONENT
255:38 argument_list|(
255:39 literal|"optionsLeftHanded"
255:58 argument_list|)
255:59 argument_list|)
255:60 argument_list|,
255:62 name|ui
255:64 operator|.
255:65 name|left_handed
255:76 argument_list|)
255:77 expr_stmt|;
256:3 name|gtk_check_menu_item_set_active
256:33 argument_list|(
257:5 name|GTK_CHECK_MENU_ITEM
257:24 argument_list|(
257:25 name|GET_COMPONENT
257:38 argument_list|(
257:39 literal|"optionsShortenMenus"
257:60 argument_list|)
257:61 argument_list|)
257:62 argument_list|,
257:64 name|ui
257:66 operator|.
257:67 name|shorten_menus
257:80 argument_list|)
257:81 expr_stmt|;
258:3 name|gtk_check_menu_item_set_active
258:33 argument_list|(
259:5 name|GTK_CHECK_MENU_ITEM
259:24 argument_list|(
259:25 name|GET_COMPONENT
259:38 argument_list|(
259:39 literal|"optionsAutoSavePrefs"
259:61 argument_list|)
259:62 argument_list|)
259:63 argument_list|,
259:65 name|ui
259:67 operator|.
259:68 name|auto_save_prefs
259:83 argument_list|)
259:84 expr_stmt|;
260:3 name|gtk_check_menu_item_set_active
260:33 argument_list|(
261:5 name|GTK_CHECK_MENU_ITEM
261:24 argument_list|(
261:25 name|GET_COMPONENT
261:38 argument_list|(
261:39 literal|"optionsButtonSwitchMapping"
261:67 argument_list|)
261:68 argument_list|)
261:69 argument_list|,
261:71 name|ui
261:73 operator|.
261:74 name|button_switch_mapping
261:95 argument_list|)
261:96 expr_stmt|;
262:3 name|gtk_check_menu_item_set_active
262:33 argument_list|(
263:5 name|GTK_CHECK_MENU_ITEM
263:24 argument_list|(
263:25 name|GET_COMPONENT
263:38 argument_list|(
263:39 literal|"optionsPenCursor"
263:57 argument_list|)
263:58 argument_list|)
263:59 argument_list|,
263:61 name|ui
263:63 operator|.
263:64 name|pen_cursor
263:74 argument_list|)
263:75 expr_stmt|;
265:3 name|hide_unimplemented
265:21 argument_list|()
265:23 expr_stmt|;
267:3 name|update_undo_redo_enabled
267:27 argument_list|()
267:29 expr_stmt|;
268:3 name|update_copy_paste_enabled
268:28 argument_list|()
268:30 expr_stmt|;
269:3 name|update_vbox_order
269:20 argument_list|(
269:21 name|ui
269:23 operator|.
269:24 name|vertical_order
269:38 index|[
269:39 name|ui
269:41 operator|.
269:42 name|fullscreen
269:52 condition|?
269:53 literal|1
269:54 else|:
269:55 literal|0
269:56 index|]
269:57 argument_list|)
269:58 expr_stmt|;
270:3 name|gtk_widget_grab_focus
270:24 argument_list|(
270:25 name|GTK_WIDGET
270:35 argument_list|(
270:36 name|canvas
270:42 argument_list|)
270:43 argument_list|)
270:44 expr_stmt|;
272:3 comment|// show everything...
274:3 name|gtk_widget_show
274:19 argument_list|(
274:20 name|winMain
274:27 argument_list|)
274:28 expr_stmt|;
275:3 name|update_cursor
275:16 argument_list|()
275:18 expr_stmt|;
277:3 comment|/* this will cause extension events to get enabled/disabled, but we need the windows to be mapped first */
279:3 name|gtk_check_menu_item_set_active
279:33 argument_list|(
280:5 name|GTK_CHECK_MENU_ITEM
280:24 argument_list|(
280:25 name|GET_COMPONENT
280:38 argument_list|(
280:39 literal|"optionsUseXInput"
280:57 argument_list|)
280:58 argument_list|)
280:59 argument_list|,
280:61 name|ui
280:63 operator|.
280:64 name|use_xinput
280:74 argument_list|)
280:75 expr_stmt|;
282:3 comment|/* fix a bug in GTK+ 2.16 and 2.17: scrollbars shouldn't get extended input events from pointer motion when cursor moves into main window */
285:3 if|if
285:6 condition|(
285:7 operator|!
285:8 name|gtk_check_version
285:25 argument_list|(
285:26 literal|2
285:27 argument_list|,
285:29 literal|16
285:31 argument_list|,
285:33 literal|0
285:34 argument_list|)
285:35 condition|)
285:37 block|{
286:5 name|g_signal_connect
286:22 argument_list|(
287:7 name|GET_COMPONENT
287:20 argument_list|(
287:21 literal|"menubar"
287:30 argument_list|)
287:31 argument_list|,
288:7 literal|"event"
288:14 argument_list|,
288:16 name|G_CALLBACK
288:27 argument_list|(
288:28 name|filter_extended_events
288:50 argument_list|)
288:51 argument_list|,
289:7 name|NULL
289:11 argument_list|)
289:12 expr_stmt|;
290:5 name|g_signal_connect
290:22 argument_list|(
291:7 name|GET_COMPONENT
291:20 argument_list|(
291:21 literal|"toolbarMain"
291:34 argument_list|)
291:35 argument_list|,
292:7 literal|"event"
292:14 argument_list|,
292:16 name|G_CALLBACK
292:27 argument_list|(
292:28 name|filter_extended_events
292:50 argument_list|)
292:51 argument_list|,
293:7 name|NULL
293:11 argument_list|)
293:12 expr_stmt|;
294:5 name|g_signal_connect
294:22 argument_list|(
295:7 name|GET_COMPONENT
295:20 argument_list|(
295:21 literal|"toolbarPen"
295:33 argument_list|)
295:34 argument_list|,
296:7 literal|"event"
296:14 argument_list|,
296:16 name|G_CALLBACK
296:27 argument_list|(
296:28 name|filter_extended_events
296:50 argument_list|)
296:51 argument_list|,
297:7 name|NULL
297:11 argument_list|)
297:12 expr_stmt|;
298:5 name|g_signal_connect
298:22 argument_list|(
299:7 name|GET_COMPONENT
299:20 argument_list|(
299:21 literal|"statusbar"
299:32 argument_list|)
299:33 argument_list|,
300:7 literal|"event"
300:14 argument_list|,
300:16 name|G_CALLBACK
300:27 argument_list|(
300:28 name|filter_extended_events
300:50 argument_list|)
300:51 argument_list|,
301:7 name|NULL
301:11 argument_list|)
301:12 expr_stmt|;
302:5 name|g_signal_connect
302:22 argument_list|(
303:7 call|(
303:8 name|gpointer
303:16 call|)
303:17 argument_list|(
303:18 name|gtk_scrolled_window_get_vscrollbar
303:52 argument_list|(
303:53 name|GTK_SCROLLED_WINDOW
303:72 argument_list|(
303:73 name|w
303:74 argument_list|)
303:75 argument_list|)
303:76 argument_list|)
303:77 argument_list|,
304:7 literal|"event"
304:14 argument_list|,
304:16 name|G_CALLBACK
304:27 argument_list|(
304:28 name|filter_extended_events
304:50 argument_list|)
304:51 argument_list|,
305:7 name|NULL
305:11 argument_list|)
305:12 expr_stmt|;
306:5 name|g_signal_connect
306:22 argument_list|(
307:7 call|(
307:8 name|gpointer
307:16 call|)
307:17 argument_list|(
307:18 name|gtk_scrolled_window_get_hscrollbar
307:52 argument_list|(
307:53 name|GTK_SCROLLED_WINDOW
307:72 argument_list|(
307:73 name|w
307:74 argument_list|)
307:75 argument_list|)
307:76 argument_list|)
307:77 argument_list|,
308:7 literal|"event"
308:14 argument_list|,
308:16 name|G_CALLBACK
308:27 argument_list|(
308:28 name|filter_extended_events
308:50 argument_list|)
308:51 argument_list|,
309:7 name|NULL
309:11 argument_list|)
309:12 expr_stmt|;
310:3 block|}
312:3 comment|// load the MRU
314:3 name|init_mru
314:11 argument_list|()
314:13 expr_stmt|;
316:3 comment|// and finally, open a file specified on the command line
317:3 comment|// (moved here because display parameters weren't initialized yet...)
319:3 if|if
319:6 condition|(
319:7 name|argc
319:12 operator|==
319:15 literal|1
319:16 condition|)
319:18 return|return;
320:3 name|set_cursor_busy
320:18 argument_list|(
320:19 name|TRUE
320:23 argument_list|)
320:24 expr_stmt|;
321:3 if|if
321:6 condition|(
321:7 name|g_path_is_absolute
321:25 argument_list|(
321:26 name|argv
321:30 index|[
321:31 literal|1
321:32 index|]
321:33 argument_list|)
321:34 condition|)
322:5 name|tmpfn
322:11 operator|=
322:13 name|g_strdup
322:21 argument_list|(
322:22 name|argv
322:26 index|[
322:27 literal|1
322:28 index|]
322:29 argument_list|)
322:30 expr_stmt|;
323:3 else|else
323:8 block|{
324:5 name|tmppath
324:13 operator|=
324:15 name|g_get_current_dir
324:32 argument_list|()
324:34 expr_stmt|;
325:5 name|tmpfn
325:11 operator|=
325:13 name|g_build_filename
325:29 argument_list|(
325:30 name|tmppath
325:37 argument_list|,
325:39 name|argv
325:43 index|[
325:44 literal|1
325:45 index|]
325:46 argument_list|,
325:48 name|NULL
325:52 argument_list|)
325:53 expr_stmt|;
326:5 name|g_free
326:11 argument_list|(
326:12 name|tmppath
326:19 argument_list|)
326:20 expr_stmt|;
327:3 block|}
328:3 name|success
328:11 operator|=
328:13 name|open_journal
328:25 argument_list|(
328:26 name|tmpfn
328:31 argument_list|)
328:32 expr_stmt|;
329:3 name|g_free
329:9 argument_list|(
329:10 name|tmpfn
329:15 argument_list|)
329:16 expr_stmt|;
330:3 name|set_cursor_busy
330:18 argument_list|(
330:19 name|FALSE
330:24 argument_list|)
330:25 expr_stmt|;
331:3 if|if
331:6 condition|(
331:7 operator|!
331:8 name|success
331:15 condition|)
331:17 block|{
332:5 name|w
332:7 operator|=
332:9 name|gtk_message_dialog_new
332:31 argument_list|(
332:32 name|GTK_WINDOW
332:43 argument_list|(
332:44 name|winMain
332:51 argument_list|)
332:52 argument_list|,
332:54 name|GTK_DIALOG_DESTROY_WITH_PARENT
332:84 argument_list|,
333:8 name|GTK_MESSAGE_ERROR
333:25 argument_list|,
333:27 name|GTK_BUTTONS_OK
333:41 argument_list|,
333:43 name|_
333:44 argument_list|(
333:45 literal|"Error opening file '%s'"
333:70 argument_list|)
333:71 argument_list|,
333:73 name|argv
333:77 index|[
333:78 literal|1
333:79 index|]
333:80 argument_list|)
333:81 expr_stmt|;
334:5 name|wrapper_gtk_dialog_run
334:27 argument_list|(
334:28 name|GTK_DIALOG
334:38 argument_list|(
334:39 name|w
334:40 argument_list|)
334:41 argument_list|)
334:42 expr_stmt|;
335:5 name|gtk_widget_destroy
335:23 argument_list|(
335:24 name|w
335:25 argument_list|)
335:26 expr_stmt|;
336:3 block|}
337:1 block|}
-:- end_function
-:- begin_function
340:1 name|int
341:1 name|main
341:6 parameter_list|(
341:7 name|int
341:11 name|argc
341:15 parameter_list|,
341:17 name|char
341:22 modifier|*
341:23 name|argv
341:27 index|[]
341:29 parameter_list|)
342:1 block|{
343:3 name|gchar
343:9 modifier|*
343:10 name|path
343:14 decl_stmt|,
343:16 modifier|*
343:17 name|path1
343:22 decl_stmt|,
343:24 modifier|*
343:25 name|path2
343:30 decl_stmt|;
345:1 ifdef|#
345:2 directive|ifdef
345:8 name|ENABLE_NLS
346:3 name|bindtextdomain
346:18 argument_list|(
346:19 name|GETTEXT_PACKAGE
346:34 argument_list|,
346:36 name|PACKAGE_LOCALE_DIR
346:54 argument_list|)
346:55 expr_stmt|;
347:3 name|bind_textdomain_codeset
347:27 argument_list|(
347:28 name|GETTEXT_PACKAGE
347:43 argument_list|,
347:45 literal|"UTF-8"
347:52 argument_list|)
347:53 expr_stmt|;
348:3 name|textdomain
348:14 argument_list|(
348:15 name|GETTEXT_PACKAGE
348:30 argument_list|)
348:31 expr_stmt|;
349:1 endif|#
349:2 directive|endif
351:3 name|gtk_set_locale
351:18 argument_list|()
351:20 expr_stmt|;
352:3 name|gtk_init
352:12 argument_list|(
352:13 operator|&
352:14 name|argc
352:18 argument_list|,
352:20 operator|&
352:21 name|argv
352:25 argument_list|)
352:26 expr_stmt|;
354:3 name|path
354:8 operator|=
354:10 name|g_path_get_dirname
354:28 argument_list|(
354:29 name|argv
354:33 index|[
354:34 literal|0
354:35 index|]
354:36 argument_list|)
354:37 expr_stmt|;
355:3 name|path1
355:9 operator|=
355:11 name|g_build_filename
355:27 argument_list|(
355:28 name|path
355:32 argument_list|,
355:34 literal|"pixmaps"
355:43 argument_list|,
355:45 name|NULL
355:49 argument_list|)
355:50 expr_stmt|;
356:3 name|path2
356:9 operator|=
356:11 name|g_build_filename
356:27 argument_list|(
356:28 name|path
356:32 argument_list|,
356:34 literal|".."
356:38 argument_list|,
356:40 literal|"pixmaps"
356:49 argument_list|,
356:51 name|NULL
356:55 argument_list|)
356:56 expr_stmt|;
357:3 name|add_pixmap_directory
357:24 argument_list|(
357:25 name|path
357:29 argument_list|)
357:30 expr_stmt|;
358:3 name|add_pixmap_directory
358:24 argument_list|(
358:25 name|path2
358:30 argument_list|)
358:31 expr_stmt|;
359:3 name|add_pixmap_directory
359:24 argument_list|(
359:25 name|path1
359:30 argument_list|)
359:31 expr_stmt|;
360:3 name|g_free
360:9 argument_list|(
360:10 name|path
360:14 argument_list|)
360:15 expr_stmt|;
361:3 name|g_free
361:9 argument_list|(
361:10 name|path1
361:15 argument_list|)
361:16 expr_stmt|;
362:3 name|g_free
362:9 argument_list|(
362:10 name|path2
362:15 argument_list|)
362:16 expr_stmt|;
363:3 name|add_pixmap_directory
363:24 argument_list|(
363:25 name|PACKAGE_DATA_DIR
363:42 literal|"/"
363:46 name|PACKAGE
363:54 literal|"/pixmaps"
363:64 argument_list|)
363:65 expr_stmt|;
365:3 comment|/* * The following code was added by Glade to create one of each component * (except popup menus), just so that you see something after building * the project. Delete any components that you don't want shown initially. */
370:3 name|winMain
370:11 operator|=
370:13 name|create_winMain
370:28 argument_list|()
370:30 expr_stmt|;
372:3 name|init_stuff
372:14 argument_list|(
372:15 name|argc
372:19 argument_list|,
372:21 name|argv
372:25 argument_list|)
372:26 expr_stmt|;
373:3 name|gtk_window_set_icon
373:22 argument_list|(
373:23 name|GTK_WINDOW
373:33 argument_list|(
373:34 name|winMain
373:41 argument_list|)
373:42 argument_list|,
373:44 name|create_pixbuf
373:57 argument_list|(
373:58 literal|"xournal.png"
373:71 argument_list|)
373:72 argument_list|)
373:73 expr_stmt|;
375:3 name|gtk_main
375:12 argument_list|()
375:14 expr_stmt|;
377:3 if|if
377:6 condition|(
377:7 name|bgpdf
377:12 operator|.
377:13 name|status
377:20 operator|!=
377:23 name|STATUS_NOT_INIT
377:38 condition|)
377:40 name|shutdown_bgpdf
377:54 argument_list|()
377:56 expr_stmt|;
379:3 name|save_mru_list
379:16 argument_list|()
379:18 expr_stmt|;
380:3 name|autosave_cleanup
380:19 argument_list|(
380:20 operator|&
380:21 name|ui
380:23 operator|.
380:24 name|autosave_filename_list
380:46 argument_list|)
380:47 expr_stmt|;
381:3 if|if
381:6 condition|(
381:7 name|ui
381:9 operator|.
381:10 name|auto_save_prefs
381:25 condition|)
381:27 name|save_config_to_file
381:46 argument_list|()
381:48 expr_stmt|;
383:3 return|return
383:10 literal|0
383:11 return|;
384:1 block|}
-:- end_function
-:- end_unit