Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
GNOME
GIMP
Commits
7ec1f256
Commit
7ec1f256
authored
Dec 23, 1998
by
Chris Lahey
Browse files
Fixed the multiple drag problem. The docindex should now allow multiple drags.
parent
4a1eceec
Changes
4
Hide whitespace changes
Inline
Side-by-side
ChangeLog
View file @
7ec1f256
1998-12-22 Chris Lahey <clahey@umich.edu>
* app/docindex.c, app/docindex.h, app/docindexif.c,
app/docindexif.h: Fixed multiple file drop. Brought docindex.c
and docindex.h to to be consistent with go's versions of the same.
1998-12-22 Tuomas Kuosmanen <tigert@gimp.org>
* TODO: added some GUI ideas..
...
...
app/docindex.c
View file @
7ec1f256
...
...
@@ -13,14 +13,14 @@
* GNU General Public License for more details.
*/
#include
"docindexif.h"
#include
"docindex.h"
#include
<gtk/gtk.h>
#include
<string.h>
#include
<stdio.h>
#include
<stdlib.h>
#include
"docindex.h"
#include
"docindexif.h"
idea_manager
*
ideas
=
NULL
;
static
GList
*
idea_list
=
NULL
;
/* of gchar *. */
static
gint
x
=
0
,
y
=
0
,
width
=
0
,
height
=
0
;
...
...
@@ -31,7 +31,9 @@ enum {
};
static
void
create_idea_list
(
void
);
static
void
load_idea_manager
(
idea_manager
*
);
void
docindex_configure_drop_on_widget
(
GtkWidget
*
widget
);
void
docindex_cell_configure_drop_on_widget
(
GtkWidget
*
widget
);
static
void
docindex_dnd_filenames_dropped
(
GtkWidget
*
widget
,
...
...
@@ -53,7 +55,7 @@ docindex_dnd_filenames_dropped( GtkWidget *widget,
len
=
selection_data
->
length
;
while
(
len
>
0
)
{
end
=
strstr
(
data
,
"
\x
13\x10
"
);
end
=
strstr
(
data
,
"
\x
0D\x0A
"
);
if
(
end
!=
NULL
)
*
end
=
0
;
if
(
*
data
!=
'#'
)
...
...
@@ -119,7 +121,7 @@ docindex_cell_dnd_filenames_dropped( GtkWidget *widget,
len
=
selection_data
->
length
;
while
(
len
>
0
)
{
end
=
strstr
(
data
,
"
\x
13\x10
"
);
end
=
strstr
(
data
,
"
\x
0D\x0A
"
);
if
(
end
!=
NULL
)
*
end
=
0
;
if
(
*
data
!=
'#'
)
...
...
@@ -164,14 +166,14 @@ docindex_cell_configure_drop_on_widget(GtkWidget * widget)
GTK_SIGNAL_FUNC
(
docindex_cell_dnd_filenames_dropped
),
NULL
);
}
static
gboolean
gboolean
idea_window_delete_event_callback
(
GtkWidget
*
widget
,
GdkEvent
*
event
,
gpointer
data
)
{
if
(
!
exit_from_go
()
)
{
save_idea_manager
(
ideas
);
create_idea_list
();
free
(
ideas
);
g_
free
(
ideas
);
ideas
=
0
;
}
...
...
@@ -189,7 +191,7 @@ idea_hide_callback( GtkWidget *widget, gpointer data )
{
create_idea_list
();
gtk_widget_destroy
(
ideas
->
window
);
free
(
ideas
);
g_
free
(
ideas
);
ideas
=
0
;
}
}
...
...
@@ -200,96 +202,13 @@ open_idea_window( void )
make_idea_window
(
-
1
,
-
1
);
}
void
make_idea_window
(
int
x
,
int
y
)
{
GtkWidget
*
main_vbox
,
*
menu
;
GtkWidget
*
scrolled_win
;
GtkWidget
*
toolbar
;
GtkAccelGroup
*
accel
;
/* malloc idea_manager */
ideas
=
g_malloc0
(
sizeof
(
idea_manager
)
);
/* Setup tree */
ideas
->
tree
=
gtk_tree_new
();
gtk_tree_set_selection_mode
(
GTK_TREE
(
ideas
->
tree
),
GTK_SELECTION_BROWSE
);
/* Setup scrolled window */
scrolled_win
=
gtk_scrolled_window_new
(
NULL
,
NULL
);
gtk_scrolled_window_set_policy
(
GTK_SCROLLED_WINDOW
(
scrolled_win
),
GTK_POLICY_AUTOMATIC
,
GTK_POLICY_ALWAYS
);
gtk_scrolled_window_add_with_viewport
(
GTK_SCROLLED_WINDOW
(
scrolled_win
),
ideas
->
tree
);
gtk_widget_show
(
ideas
->
tree
);
/* allocate the window and attach the menu */
ideas
->
window
=
gtk_window_new
(
GTK_WINDOW_TOPLEVEL
);
ideas
->
menubar
=
create_idea_menu
(
ideas
);
if
(
ideas
->
menubar
)
{
menu
=
ideas
->
menubar
->
widget
;
/* Setup accelerator (hotkey) table */
accel
=
ideas
->
menubar
->
accel_group
;
/* Add accelerators to window widget */
gtk_window_add_accel_group
(
GTK_WINDOW
(
ideas
->
window
),
accel
);
}
else
menu
=
NULL
;
/* Setup the status bar */
ideas
->
status
=
gtk_statusbar_new
();
ideas
->
contextid
=
gtk_statusbar_get_context_id
(
GTK_STATUSBAR
(
ideas
->
status
),
"main context"
);
/* Setup the toolbar */
toolbar
=
create_idea_toolbar
();
/* Setup a vbox to contain the menu */
main_vbox
=
gtk_vbox_new
(
FALSE
,
0
);
if
(
menu
)
gtk_box_pack_start
(
GTK_BOX
(
main_vbox
),
menu
,
FALSE
,
FALSE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
main_vbox
),
toolbar
,
FALSE
,
FALSE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
main_vbox
),
scrolled_win
,
TRUE
,
TRUE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
main_vbox
),
ideas
->
status
,
FALSE
,
FALSE
,
0
);
if
(
menu
)
gtk_widget_show
(
menu
);
gtk_widget_show
(
scrolled_win
);
gtk_widget_show
(
ideas
->
status
);
/* Set the GOWindow title */
ideas
->
title
=
g_strdup
(
_
(
"Document Index"
)
);
/* Set the GtkWindow title */
gtk_window_set_title
(
GTK_WINDOW
(
ideas
->
window
),
ideas
->
title
);
/* Set the initial status message */
gtk_statusbar_push
(
GTK_STATUSBAR
(
ideas
->
status
),
ideas
->
contextid
,
_
(
"GTK successfully started"
)
);
/* Connect the signals */
gtk_signal_connect
(
GTK_OBJECT
(
ideas
->
window
),
"delete_event"
,
GTK_SIGNAL_FUNC
(
idea_window_delete_event_callback
),
NULL
);
/* Add the main vbox to the window */
gtk_container_set_border_width
(
GTK_CONTAINER
(
ideas
->
window
),
0
);
gtk_container_add
(
GTK_CONTAINER
(
ideas
->
window
),
main_vbox
);
gtk_widget_show
(
main_vbox
);
docindex_configure_drop_on_widget
(
ideas
->
tree
);
/* Load and Show window */
load_idea_manager
(
ideas
);
/* Set the position of the window if it was requested */
if
(
x
>=
0
&&
y
>=
0
)
gtk_widget_set_uposition
(
ideas
->
window
,
x
,
y
);
}
static
void
load_from_list
(
gpointer
data
,
gpointer
data_null
)
{
idea_add_in_position
(
(
gchar
*
)
data
,
-
1
);
}
static
void
void
load_idea_manager
(
idea_manager
*
ideas
)
{
FILE
*
fp
=
NULL
;
...
...
app/docindex.h
View file @
7ec1f256
...
...
@@ -52,6 +52,9 @@ void idea_up_callback( GtkWidget *widget, gpointer data );
void
idea_down_callback
(
GtkWidget
*
widget
,
gpointer
data
);
void
idea_remove_callback
(
GtkWidget
*
widget
,
gpointer
data
);
void
save_idea_manager
(
idea_manager
*
);
gboolean
idea_window_delete_event_callback
(
GtkWidget
*
widget
,
GdkEvent
*
event
,
gpointer
data
);
void
docindex_configure_drop_on_widget
(
GtkWidget
*
widget
);
void
load_idea_manager
(
idea_manager
*
);
extern
idea_manager
*
ideas
;
...
...
app/docindexif.c
View file @
7ec1f256
...
...
@@ -154,3 +154,86 @@ gint reset_usize( gpointer data )
gtk_widget_set_usize
(
GTK_WIDGET
(
data
),
0
,
0
);
return
FALSE
;
}
void
make_idea_window
(
int
x
,
int
y
)
{
GtkWidget
*
main_vbox
,
*
menu
;
GtkWidget
*
scrolled_win
;
GtkWidget
*
toolbar
;
GtkAccelGroup
*
accel
;
/* malloc idea_manager */
ideas
=
g_malloc0
(
sizeof
(
idea_manager
)
);
/* Setup tree */
ideas
->
tree
=
gtk_tree_new
();
gtk_tree_set_selection_mode
(
GTK_TREE
(
ideas
->
tree
),
GTK_SELECTION_BROWSE
);
/* Setup scrolled window */
scrolled_win
=
gtk_scrolled_window_new
(
NULL
,
NULL
);
gtk_scrolled_window_set_policy
(
GTK_SCROLLED_WINDOW
(
scrolled_win
),
GTK_POLICY_AUTOMATIC
,
GTK_POLICY_ALWAYS
);
gtk_scrolled_window_add_with_viewport
(
GTK_SCROLLED_WINDOW
(
scrolled_win
),
ideas
->
tree
);
gtk_widget_show
(
ideas
->
tree
);
/* allocate the window and attach the menu */
ideas
->
window
=
gtk_window_new
(
GTK_WINDOW_TOPLEVEL
);
ideas
->
menubar
=
create_idea_menu
(
ideas
);
if
(
ideas
->
menubar
)
{
menu
=
ideas
->
menubar
->
widget
;
/* Setup accelerator (hotkey) table */
accel
=
ideas
->
menubar
->
accel_group
;
/* Add accelerators to window widget */
gtk_window_add_accel_group
(
GTK_WINDOW
(
ideas
->
window
),
accel
);
}
else
menu
=
NULL
;
/* Setup the status bar */
ideas
->
status
=
gtk_statusbar_new
();
ideas
->
contextid
=
gtk_statusbar_get_context_id
(
GTK_STATUSBAR
(
ideas
->
status
),
"main context"
);
/* Setup the toolbar */
toolbar
=
create_idea_toolbar
();
/* Setup a vbox to contain the menu */
main_vbox
=
gtk_vbox_new
(
FALSE
,
0
);
if
(
menu
)
gtk_box_pack_start
(
GTK_BOX
(
main_vbox
),
menu
,
FALSE
,
FALSE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
main_vbox
),
toolbar
,
FALSE
,
FALSE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
main_vbox
),
scrolled_win
,
TRUE
,
TRUE
,
0
);
gtk_box_pack_start
(
GTK_BOX
(
main_vbox
),
ideas
->
status
,
FALSE
,
FALSE
,
0
);
if
(
menu
)
gtk_widget_show
(
menu
);
gtk_widget_show
(
scrolled_win
);
gtk_widget_show
(
ideas
->
status
);
/* Set the GOWindow title */
ideas
->
title
=
g_strdup
(
_
(
"Document Index"
)
);
/* Set the GtkWindow title */
gtk_window_set_title
(
GTK_WINDOW
(
ideas
->
window
),
ideas
->
title
);
/* Set the initial status message */
gtk_statusbar_push
(
GTK_STATUSBAR
(
ideas
->
status
),
ideas
->
contextid
,
_
(
"GTK successfully started"
)
);
/* Connect the signals */
gtk_signal_connect
(
GTK_OBJECT
(
ideas
->
window
),
"delete_event"
,
GTK_SIGNAL_FUNC
(
idea_window_delete_event_callback
),
NULL
);
/* Add the main vbox to the window */
gtk_container_set_border_width
(
GTK_CONTAINER
(
ideas
->
window
),
0
);
gtk_container_add
(
GTK_CONTAINER
(
ideas
->
window
),
main_vbox
);
gtk_widget_show
(
main_vbox
);
docindex_configure_drop_on_widget
(
ideas
->
tree
);
/* Load and Show window */
load_idea_manager
(
ideas
);
/* Set the position of the window if it was requested */
if
(
x
>=
0
&&
y
>=
0
)
gtk_widget_set_uposition
(
ideas
->
window
,
x
,
y
);
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment