Commit f7065364 authored by Richard Hult's avatar Richard Hult Committed by Richard Hult

Fix distcheck.

2004-06-25  Richard Hult  <richard@imendio.com>

	* Makefile.am:
	* data/mime/Makefile.am:
	* data/mime/planner.keys.in:
	* dotnet/libplanner/Makefile.am:
	* dotnet/libplanner/libplanner-api.xml:
	* dotnet/samples/Example01.cs:
	* dotnet/samples/Example10.cs:
	* dotnet/samples/Makefile.am: Fix distcheck.

	* libplanner/mrp-sql.c: (sql_get_last_error), (get_int), (get_id),
	(get_string), (get_boolean), (get_float):
	* src/planner-sql-plugin.c: (get_int), (get_string):
	* src/planner-task-dialog.c: Fix leaks and warnings.
parent 891ebd3f
2004-06-25 Richard Hult <richard@imendio.com>
* Makefile.am:
* data/mime/Makefile.am:
* data/mime/planner.keys.in:
* dotnet/libplanner/Makefile.am:
* dotnet/libplanner/libplanner-api.xml:
* dotnet/samples/Example01.cs:
* dotnet/samples/Example10.cs:
* dotnet/samples/Makefile.am: Fix distcheck.
* libplanner/mrp-sql.c: (sql_get_last_error), (get_int), (get_id),
(get_string), (get_boolean), (get_float):
* src/planner-sql-plugin.c: (get_int), (get_string):
* src/planner-task-dialog.c: Fix leaks and warnings.
2004-06-23 Alvaro del Castillo <acs@barrapunto.com>
* src/planner-calendar-dialog.c
......
......@@ -30,9 +30,13 @@ EXTRA_DIST = \
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libplanner-1.pc
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-gda --disable-dotnet --enable-python
# Workaround broken scrollkeeper that doesn't remove its files on uninstall
distuninstallcheck_listfiles = find . -type f -print | grep -v '^\./var/scrollkeeper' \
intltool-extract intltool-merge intltool-update
# Workaround broken scrollkeeper that doesn't remove its files on
# uninstall. Same with the shared mime info, the generated files
# aren't empty when there is no mime data
distuninstallcheck_listfiles = find . -type f -print | grep -v '^\./var/scrollkeeper' | \
grep -v '/share/mime/' | grep -v '/share/omf/planner'
DISTCLEANFILES = intltool-extract intltool-merge intltool-update
......@@ -25,11 +25,11 @@ CLEANFILES = $(keys_files) $(xml_files)
install-data-hook:
if HAVE_NEW_MIME
$(UPDATE_MIME_DATABASE) "$(datadir)/mime"
$(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime"
endif
uninstall-hook:
if HAVE_NEW_MIME
$(UPDATE_MIME_DATABASE) "$(datadir)/mime"
$(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime"
endif
application/x-mrproject
description=Project Plan
open=planner %f
view=planner %f
icon_filename=gnome-application-x-planner
default_action_type=application
category=Documents/ProjectManagement
......@@ -9,8 +7,6 @@ application/x-mrproject
application/x-planner
description=Project Plan
open=planner %f
view=planner %f
icon_filename=gnome-application-x-planner
default_action_type=application
category=Documents/ProjectManagement
......
......@@ -68,6 +68,11 @@ Object representing a task in the project.
</para>
<!-- ##### ARG MrpResource:short-name ##### -->
<para>
</para>
<!-- ##### ARG MrpResource:type ##### -->
<para>
......
......@@ -127,6 +127,11 @@ Object representing a task in the project.
</para>
<!-- ##### ARG MrpTask:priority ##### -->
<para>
</para>
<!-- ##### ARG MrpTask:sched ##### -->
<para>
......
......@@ -3,26 +3,35 @@ APIS= libplanner-api.xml
INCLUDE_APIS=
ASSEMBLIES= -pkg:gtk-sharp
EXTRA_DIST = *.custom *.metadata *.xml
gtksourceviewsharpdir = $(libdir)
gtksourceviewsharp_DATA = libplanner.dll
if HAVE_DOTNET
libplannersharpdir = $(libdir)
libplannersharp_DATA = libplanner.dll
gapidir=$(datadir)/gapi
gapi_DATA = $(APIS)
all: $(LIBRARY)
generated-stamp: $(APIS) *.custom *.metadata
$(GAPI_FIXUP) --api=libplanner-api.xml --metadata=libplanner.metadata && \
generated-stamp: $(APIS) $(srcdir)/*.custom $(srcdir)/*.metadata
$(GAPI_FIXUP) --api=$(srcdir)/libplanner-api.xml --metadata=$(srcdir)/libplanner.metadata && \
$(GAPI_CODEGEN) --include $(INCLUDE_APIS) --generate $(APIS) \
--outdir=generated --customdir=. --assembly-name=libplanner && touch generated-stamp
--outdir=generated --customdir=$(srcdir) --assembly-name=libplanner && touch generated-stamp
$(LIBRARY): generated-stamp
$(MCS) --unsafe -nowarn:0660,0661 --target library $(ASSEMBLIES) --recurse '*.cs' -o $(LIBRARY)
install:
for i in $(APIS); do \
$(INSTALL) -m 644 $$i @prefix@/share/gapi || true; \
done && \
install-data-local:
$(INSTALL) -m 644 $(LIBRARY) $(libdir)
uninstall-local:
rm -f $(libdir)/$(LIBRARY)
clean:
rm -rf $(LIBRARY) generated generated-stamp
EXTRA_DIST = *.custom *.metadata *.xml
endif
<?xml version="1.0"?>
<api><!--
<api
><!--
This file was automatically generated.
Please DO NOT MODIFY THIS FILE, modify .metadata files instead.
......
......@@ -5,14 +5,17 @@ using Gtk;
public class Test {
static int Main() {
Planner.Application app;
Task task;
Gtk.Application.Init ();
GtkSharp.Libplanner.ObjectManager.Initialize ();
app = new Planner.Application ();
task = new Task ();
Console.WriteLine (task.Start);
Console.WriteLine ("Planner 0.8 here");
Console.WriteLine ("Planner here");
return 0;
}
}
......@@ -5,22 +5,21 @@ using GLib;
public class Example10 {
static int Main() {
Project project;
Planner.Application app;
Project project;
List tasks, resources;
// GtkSharp.Libplanner.ObjectManager.Initialize ();
// GtkSharp.Libplanner.ObjectManager.Initialize ();
Gtk.Application.Init ();
app = new Planner.Application();
project = new Project (app);
// project.Loaded += new EventHandler (Project_Loaded);
//project.Loaded += Project_Loaded;
project.Load ("../../examples/project-x.mrproject");
tasks = project.AllTasks;
resources = project.Resources;
......@@ -34,8 +33,8 @@ public class Example10 {
return 0;
}
static void Project_Loaded (object o, EventArgs args) {
Console.WriteLine ("Project is loaded");
Console.WriteLine ("Project is loaded");
}
}
local_paths = -L ../libplanner
all_assemblies = -r libplanner.dll -r gtk-sharp.dll -r glib-sharp.dll
all_assemblies = -r libplanner.dll -pkg:gtk-sharp
EXTRA_DIST = \
Example01.cs \
......
......@@ -202,8 +202,6 @@ sql_get_last_error (GdaConnection *connection)
GdaError *error;
const gchar *error_txt;
g_return_val_if_fail (connection != NULL, "");
list = (GList *) gda_connection_get_errors (connection);
error = (GdaError *) g_list_last (list)->data;
......@@ -217,8 +215,9 @@ sql_get_last_error (GdaConnection *connection)
static gint
get_int (GdaDataModel *res, gint row, gint column)
{
const gchar *str;
const GdaValue *value;
GdaValue *value;
gchar *str;
gint i;
value = (GdaValue *) gda_data_model_get_value_at (res, column, row);
if (value == NULL) {
......@@ -226,15 +225,20 @@ get_int (GdaDataModel *res, gint row, gint column)
d(sql_show_result (res));
return INT_MAX;
}
str = gda_value_stringify (value);
return strtol (str, NULL, 10);
i = strtol (str, NULL, 10);
g_free (str);
return i;
}
static gint
get_id (GdaDataModel *res, gint row, gint column)
{
const gchar *str;
const GdaValue *value;
GdaValue *value;
gchar *str;
gint i;
value = (GdaValue *) gda_data_model_get_value_at (res, column, row);
if (value == NULL) {
......@@ -245,19 +249,23 @@ get_id (GdaDataModel *res, gint row, gint column)
str = gda_value_stringify (value);
if (!str || !str[0]) {
g_free (str);
return -1;
}
return strtol (str, NULL, 10);
i = strtol (str, NULL, 10);
g_free (str);
return i;
}
static gchar *
get_string (GdaDataModel *res, gint row, gint column)
{
const gchar *str;
gchar *ret;
gsize len;
const GdaValue *value;
GdaValue *value;
gsize len;
gchar *ret;
gchar *str;
value = (GdaValue *) gda_data_model_get_value_at (res, column, row);
if (value == NULL) {
......@@ -270,7 +278,7 @@ get_string (GdaDataModel *res, gint row, gint column)
len = strlen (str);
if (g_utf8_validate (str, len, NULL)) {
return g_strdup (str);
return str;
}
/* First, try to convert to UTF-8 from the current locale. */
......@@ -285,6 +293,8 @@ get_string (GdaDataModel *res, gint row, gint column)
/* Give up. */
ret = g_strdup (_("Invalid Unicode"));
}
g_free (str);
return ret;
}
......@@ -292,7 +302,7 @@ get_string (GdaDataModel *res, gint row, gint column)
static gboolean
get_boolean (GdaDataModel *res, gint row, gint column)
{
const GdaValue *value;
GdaValue *value;
value = (GdaValue *) gda_data_model_get_value_at (res, column, row);
if (value == NULL) {
......@@ -307,8 +317,9 @@ get_boolean (GdaDataModel *res, gint row, gint column)
static gfloat
get_float (GdaDataModel *res, gint row, gint column)
{
const gchar *str;
const GdaValue *value;
GdaValue *value;
gchar *str;
gdouble d;
value = (GdaValue *) gda_data_model_get_value_at (res, column, row);
......@@ -319,7 +330,10 @@ get_float (GdaDataModel *res, gint row, gint column)
}
str = gda_value_stringify (value);
return g_ascii_strtod (str, NULL);
d = g_ascii_strtod (str, NULL);
g_free (str);
return d;
}
static gboolean
......
......@@ -10,11 +10,12 @@ Group: Applications/Productivity
Url: http://planner.imendio.org/
Source: %{name}-%{ver}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{ver}-root
Obsoletes: mrproject libmrproject
Requires: gtk2 >= @GTK_REQUIRED@
Requires: libgnomeui >= @LIBGNOMEUI_REQUIRED@
Requires: popt >= 1.5
Requires: libglade2 >= @LIBGLADE_REQUIRED@
Requires: libplanner = %{ver}
Requires: gnome-vfs2 >= 2.0.2
Requires: libgnomeprintui22 >= 2.2.0
Requires: libxslt >= 1.0
......@@ -23,12 +24,13 @@ PreReq: scrollkeeper >= 0.3.10
BuildRequires: gtk2-devel >= @GTK_REQUIRED@
BuildRequires: libgnomeui-devel >= @LIBGNOMEUI_REQUIRED@
BuildRequires: libglade2-devel >= @LIBGLADE_REQUIRED@
BuildRequires: libplanner-devel = %{ver}
BuildRequires: gnome-vfs2-devel >= 2.0.2
BuildRequires: libgnomeprintui22-devel >= 2.2.0
BuildRequires: libxml-devel >= @LIBXML_REQUIRED@
BuildRequires: libxslt-devel >= @LIBXSLT_REQUIRED@
BuildRequires: intltool
BuildRequires: intltool autoconf automake17
BuildRequires: libgda-devel
%description
Planner is a visual project management application which allows users to
......@@ -38,80 +40,102 @@ Gantt charts.
You should install Planner if you wish to manage schedules, allocate
resources, and track the progress of your projects.
%package sql
Summary: Planner SQL plugin
Group: Applications/Productivity
Requires: %name = %{PACKAGE_VERSION}
Requires: libgda
BuildRequires: libgda-devel
%description sql
SQL plugin for Planner, this plugin can be used to store projects in a PostgreSQL database.
%prep
%setup -q
%build
intltoolize
%configure --enable-gda
intltoolize --force
libtoolize --force
aclocal-1.7
automake-1.7
autoconf
%configure --enable-gda --enable-python --enable-gtk-doc --disable-dotnet
make
%install
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
rm -rf "%{buildroot}"
%makeinstall MRP_PLUGINDIR=$RPM_BUILD_ROOT/%{_libdir}/planner/plugins MRP_VIEWDIR=$RPM_BUILD_ROOT/%{_libdir}/planner/views
%makeinstall
rm -rf $RPM_BUILD_ROOT/var/scrollkeeper
rm -f $RPM_BUILD_ROOT%{_libdir}/planner/*/*la
rm -f $RPM_BUILD_ROOT%{_libdir}/planner/*la
desktop-file-install --vendor imendio --delete-original \
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
--add-category X-Red-Hat-Base \
$RPM_BUILD_ROOT%{_datadir}/applications/planner.desktop
/bin/rm -rf %{buildroot}/var/scrollkeeper
/bin/rm %{buildroot}/%{_libdir}/*.la
/bin/rm %{buildroot}/%{_libdir}/planner/file-modules/*.la
/bin/rm %{buildroot}/%{_libdir}/planner/storage-modules/*.la
/bin/rm %{buildroot}/%{_libdir}/planner/plugins/*.la
/bin/rm %{buildroot}/%{_libdir}/planner/views/*.la
/bin/rm %{buildroot}/%{_libdir}/python*/site-packages/gtk-2.0/*.la
/bin/rm %{buildroot}/%{_datadir}/mime/XMLnamespaces
/bin/rm %{buildroot}/%{_datadir}/mime/globs
/bin/rm %{buildroot}/%{_datadir}/mime/magic
/bin/rm %{buildroot}/%{_datadir}/mime/application/*
%find_lang %name
%clean
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
rm -rf "%{buildroot}"
%post
/sbin/ldconfig
scrollkeeper-update
if test x$UPDATE_MIME_DATABASE != xno ; then
$(UPDATE_MIME_DATABASE) "%{_datadir}/mime"
endif
%postun
/sbin/ldconfig
scrollkeeper-update
if test x$UPDATE_MIME_DATABASE != xno ; then
$(UPDATE_MIME_DATABASE) "%{_datadir}/mime"
endif
%files -f %{name}.lang
%defattr(-, root, root)
%files
%defattr(-,root,root)
%doc ChangeLog NEWS README COPYING
%{_bindir}/planner
%{_libdir}/planner
%{_libdir}/libplanner-1*
%{_libdir}/pkgconfig/*
%{_libdir}/python*/site-packages/gtk-2.0/*
%{_datadir}/planner
%{_datadir}/gnome-2.0/ui/*.ui
%{_datadir}/application-registry/*
%{_datadir}/mime-info/*
%{_datadir}/mime/packages/*
%{_datadir}/pixmaps/*
%{_datadir}/applications/*
%{_datadir}/gtk-doc/html/libplanner
%{_datadir}/gnome/help/planner/*
%{_datadir}/omf/planner/*
%{_datadir}/omf/planner/planner-C.omf
%{_datadir}/locale/*/LC_MESSAGES/*
%{_includedir}/planner-1.0
%exclude %{_libdir}/planner/file-modules/libmrp-xsl*
%exclude %{_libdir}/planner/plugins/libsql-plugin*
%exclude %{_datadir}/planner/glade/sql.glade
%exclude %{_datadir}/planner/ui/sql-plugin.ui
# Database (GDA) package
%package database
Summary: Planner database support
Group: Applications/Productivity
Requires: %name = %{PACKAGE_VERSION}
Requires: libgda
BuildRequires: libgda-devel
%exclude %{_libdir}/planner/plugins/libproject-sql*
%exclude %{_datadir}/planner/glade/mg-sql.glade
%exclude %{_datadir}/gnome-2.0/ui/sql-plugin.ui
%description database
Database support for Planner, this plugin can be used to store projects in a PostgreSQL database.
%files sql
%files database
%defattr(-,root,root)
%{_libdir}/planner/plugins/libproject-sql*
%{_datadir}/planner/glade/mg-sql.glade
%{_datadir}/gnome-2.0/ui/sql-plugin.ui
%{_libdir}/planner/file-modules/libmrp-xsl*
%{_libdir}/planner/plugins/libsql-plugin*
%{_datadir}/planner/glade/sql.glade
%{_datadir}/planner/ui/sql-plugin.ui
%changelog
* Thu Jun 24 2004 Richard Hult <richard@imendio.com>
- Fix up to actually work.
* Mon Dec 1 2003 Richard Hult <richard@imendio.com>
- Start over with a new spec file, needs a lot more work.
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* Copyright (C) 2003 Imendio HB
* Copyright (C) 2003-2004 Imendio HB
* Copyright (C) 2003 CodeFactory AB
* Copyright (C) 2003 Richard Hult <richard@imendio.com>
* Copyright (C) 2003 Mikael Hallendal <micke@imendio.com>
......@@ -119,11 +119,10 @@ sql_execute_query (GdaConnection *con, gchar *query)
static gint
get_int (GdaDataModel *res, gint row, gint column)
{
const gchar *str;
const GdaValue *value;
gchar *str;
GdaValue *value;
gint i;
g_return_val_if_fail (GDA_IS_DATA_MODEL (res), INT_MAX);
value = (GdaValue *) gda_data_model_get_value_at (res, column, row);
if (value == NULL) {
g_warning ("Failed to get a value: (%d,%d)", column, row);
......@@ -131,7 +130,10 @@ get_int (GdaDataModel *res, gint row, gint column)
}
str = gda_value_stringify (value);
return strtol (str, NULL, 10);
i = strtol (str, NULL, 10);
g_free (str);
return i;
}
/**
......@@ -140,13 +142,11 @@ get_int (GdaDataModel *res, gint row, gint column)
static gchar *
get_string (GdaDataModel *res, gint row, gint column)
{
const gchar *str;
gchar *ret;
gsize len;
const GdaValue *value;
gchar *str;
gchar *ret;
gsize len;
GdaValue *value;
g_return_val_if_fail (GDA_IS_DATA_MODEL (res), NULL);
value = (GdaValue *) gda_data_model_get_value_at (res, column, row);
if (value == NULL) {
g_warning ("Failed to get a value: (%d,%d)", column, row);
......@@ -157,7 +157,7 @@ get_string (GdaDataModel *res, gint row, gint column)
len = strlen (str);
if (g_utf8_validate (str, len, NULL)) {
return g_strdup (str);
return str;
}
/* First, try to convert to UTF-8 from the current locale. */
......@@ -172,6 +172,8 @@ get_string (GdaDataModel *res, gint row, gint column)
/* Give up. */
ret = g_strdup (_("Invalid Unicode"));
}
g_free (str);
return ret;
}
......
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* Copyright (C) 2004 Imendio HB
* Copyright (C) 2002-2003 CodeFactory AB
* Copyright (C) 2002-2003 Richard Hult <richard@imendio.com>
* Copyright (C) 2002 Mikael Hallendal <micke@imendio.com>
......@@ -57,133 +58,134 @@ typedef struct {
} DialogData;
static void task_dialog_close_clicked_cb (GtkWidget *w,
DialogData *data);
static void task_dialog_task_removed_cb (MrpObject *object,
GtkWidget *dialog);
static void task_dialog_task_name_changed_cb (MrpTask *task,
GParamSpec *pspec,
GtkWidget *dialog);
static void task_dialog_name_changed_cb (GtkWidget *w,
DialogData *data);
static gboolean task_dialog_name_focus_in_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static gboolean task_dialog_name_focus_out_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static void task_dialog_task_type_changed_cb (MrpTask *task,
GParamSpec *pspec,
GtkWidget *dialog);
static void task_dialog_type_toggled_cb (GtkWidget *w,
DialogData *data);
static void task_dialog_task_sched_changed_cb (MrpTask *task,
GParamSpec *pspec,
GtkWidget *dialog);
static void task_dialog_fixed_toggled_cb (GtkWidget *w,
DialogData *data);
static void task_dialog_task_work_changed_cb (MrpTask *task,
GParamSpec *pspec,
GtkWidget *dialog);
static void task_dialog_work_changed_cb (GtkWidget *w,
DialogData *data);
static gboolean task_dialog_work_focus_in_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static gboolean task_dialog_work_focus_out_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static void task_dialog_task_duration_changed_cb (MrpTask *task,
GParamSpec *pspec,
GtkWidget *dialog);
static void task_dialog_duration_changed_cb (GtkWidget *w,
DialogData *data);
static gboolean task_dialog_duration_focus_in_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static gboolean task_dialog_duration_focus_out_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static void task_dialog_task_complete_changed_cb (MrpTask *task,
GParamSpec *pspec,
GtkWidget *dialog);
static void task_dialog_complete_changed_cb (GtkWidget *w,
DialogData *data);
static gboolean task_dialog_complete_focus_in_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static gboolean task_dialog_complete_focus_out_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static void task_dialog_task_priority_changed_cb (MrpTask *task,
GParamSpec *pspec,
GtkWidget *dialog);
static void task_dialog_priority_changed_cb (GtkWidget *w,
DialogData *data);
static gboolean task_dialog_priority_focus_in_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static gboolean task_dialog_priority_focus_out_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static void task_dialog_task_note_changed_cb (MrpTask *task,
GParamSpec *pspec,
GtkWidget *dialog);
static void task_dialog_note_changed_cb (GtkWidget *w,
DialogData *data);
static gboolean task_dialog_note_focus_in_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static gboolean task_dialog_note_focus_out_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static void task_dialog_note_stamp_cb (GtkWidget *w,
DialogData *data);
static void
task_dialog_task_child_added_or_removed_cb (MrpTask *task,
GtkWidget *dialog);
static void task_dialog_setup_widgets (DialogData *data,
GladeXML *glade);
static void task_dialog_assignment_toggled_cb (GtkCellRendererText *cell,
gchar *path_str,
DialogData *data);
static void task_dialog_setup_resource_list (DialogData *data);
static void task_dialog_connect_to_task (DialogData *data);
static void task_dialog_resource_units_cell_edited (GtkCellRendererText *cell,
gchar *path_str,
gchar *new_text,
DialogData *data);
static void task_dialog_pred_cell_edited (GtkCellRendererText *cell,
gchar *path_str,
gchar *new_text,
DialogData *data);
static MrpRelationType cell_index_to_relation_type (gint i);
static void task_dialog_cell_type_show_popup (PlannerCellRendererList *cell,
const gchar *path_string,
gint x1,
gint y1,
gint x2,
gint y2,
DialogData *data);
static void task_dialog_cell_name_show_popup (PlannerCellRendererList *cell,
const gchar *path_string,
gint x1,
gint y1,
gint x2,
gint y2,
DialogData *data);
static void task_dialog_cell_hide_popup (PlannerCellRendererList *cell,
GtkWidget *view);
static void task_dialog_add_predecessor_cb (GtkWidget *widget,
DialogData *data);
static void task_dialog_remove_predecessor_cb (GtkWidget *widget,
DialogData *data);
static void task_dialog_new_pred_ok_clicked_cb (GtkWidget *w,
GtkWidget *dialog);
static void task_dialog_new_pred_cancel_clicked_cb (GtkWidget *w,
GtkWidget *dialog);
static void task_dialog_update_sensitivity (DialogData *data);
static void task_dialog_update_title (DialogData *data);
static void task_dialog_close_clicked_cb (GtkWidget *w,
DialogData *data);
static void task_dialog_task_removed_cb (MrpObject *object,
GtkWidget *dialog);
static void task_dialog_task_name_changed_cb (MrpTask *task,
GParamSpec *pspec,
GtkWidget *dialog);
static void task_dialog_name_changed_cb (GtkWidget *w,
DialogData *data);
static gboolean task_dialog_name_focus_in_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static gboolean task_dialog_name_focus_out_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static void task_dialog_task_type_changed_cb (MrpTask *task,
GParamSpec *pspec,
GtkWidget *dialog);
static void task_dialog_type_toggled_cb (GtkWidget *w,
DialogData *data);
static void task_dialog_task_sched_changed_cb (MrpTask *task,
GParamSpec *pspec,
GtkWidget *dialog);
static void task_dialog_fixed_toggled_cb (GtkWidget *w,
DialogData *data);
static void task_dialog_task_work_changed_cb (MrpTask *task,
GParamSpec *pspec,
GtkWidget *dialog);
static void task_dialog_work_changed_cb (GtkWidget *w,
DialogData *data);
static gboolean task_dialog_work_focus_in_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static gboolean task_dialog_work_focus_out_cb (GtkWidget *w,
GdkEventFocus *event,
DialogData *data);
static void task_dialog_task_duration_changed_cb (MrpTask *task,
GParamSpec *pspec,
GtkWidget *dialog);
static void task_dialog_duration_changed_cb (GtkWidget *w,
DialogData *data);
static gboolean task_dialog_duration_focus_in_cb (GtkWidget *w,