Re: Dia goes Gtk2, anyone else with it ?



Le Sat, Jun 08, 2002, à 12:52:42PM +0200, Hans Breuer a écrit:
Hi all,
below you'll find some kind of 'plan' what more or less
needs to be done to make Dia a first class Gtk2 citizen.

The first step just landed in cvs. [Beware: it will _not_
build as is on Linux and other *nix cause the auto/configure 
stuff needs some love first.]

I'll take care of that this week-end, using James' work as a basis.
 
I'll be out of state next week (taking off from BSL tomorrow morning), so if
it breaks, someone else's gotta fix it :-)


My GTK2 fixmes are FIXME? or GTKBUG?

app/interface.c:123 /*static*/
app/interface.c:839 static void fill_sheet_menu
app/render_libart.c probably broken on X11

Actually, obsolete. We'll get rid of it.

app/sheet.c:207 move message_notice out of loop
app/ps_utf8.c : not yet build on win32

What's wrong with it ?

app/render_eps.c : some further utf8 cleaning needed

The current plan is:
- merge all Gtk2 specific changes done on TARGET_GTK2_0 into HEAD.
  (it would be much simpler if I haven't tried to keep both trunks
   in sync, see the other ChangeLog.)
- merge in utf8-ness (my branch apperas to be almost clean)
- do one large commit, which allows to build with GTK2
  (some of Akira's changes probably will vanish by this, at least
   the reformatting which IMHO should never had happen [Dia's tab
   size is 8 not 2!] and some of the XIM stuff which I neither can 
   test nor does it seem to be not applicable with GTK2)

tabs are evil. XIM still seems applicable, where GTK2 doesn't already take
care of it !

- add a file 'todo.gtk2' which is an extract from the todo.hb
  with some additional steps to be taken. Post it to the 
  mailing list.

[the following tasks could easy be shared]
- let someone else do the auto-break stuff

I'm on it.

  - no more: libunicode, separte gdk-pixbuf, charconv.[hc], HAVE_DIRENT

charconv is still needed, at least to recover the pre 0.90 dia files (damn
libxml1). Has libunicode's functionality been swallowed by gtk or glib ? We
still need stuff to extract a single unichar out of an utf8 string,
iterators, etc...

  - require: gtk2, libxml2

at long last.
 
- convert Renderer interface to GObject
  - change init_*_*ops() to *_class_init, virtual function support 
    (should be done by/with the help of GObject)
  - lib/render.c includes most of the base DiaRenderer
    plug-ins/renderer.inc has code to approximate ellipse by arcs
    app/renderer_gdk.c : has a bezier by line approximation

  - try to involve original plug-in authors (to at least 
    take a look if something got broken during the transition)
 
- make PlugInInfo opaque again in the good tradition of information 
  hiding and clean-up some other global vars which where intoduced 
  by the shape editor patch
  - try to move object_types_detect_nosheet() etc out of object.h ...
  - (see fixmes above)
 
- split out HAVE_FREETYPE stuff in own files *_ft2.c to keep 
  the know-how for later possible reintegration

Yep.
 
- remove the font name trough gettext hack
- do basic GdkFont -> Pango conversion

These are to be done in the same step. Pango will do the font matching. I
plan to do that during the end of week 25, perhaps in coordination with
Lars (beer, pizza, irc).

- remove the scrolling menu hack (Gtk2 does handle such)

 
- make it compile without GTK_ENABLE_BROKEN

what's it ?
 
- make it compile with GTK_DISABLE_DEPRECATED
  - maybe split in parts by un-defining it in single files,
    which need more work (diagram_tree.c, ...)

- simplify render_pixmap.c : by inheritance from DiaGdkRenderer 

 
- fix Arrow widget to properly scale and make thicker lines
  again (they IMHO looked much prettier)

- remove LIBXML1 #hell

Can be done now.
 
- remove as much as obvious not needed anymore GNOME #hell
 
- do some gui tweaking to try to conform to new HIG (at 
  least button ordering)
  - try to involve the Gnome Useability Group
  - maybe add hooks for online help, cause any widget
    probably needs to be touched anyway

 
- try again to get a 'complete' hotkey/accelerator
  specification
 
- common default object properties load/save implementation 
  to be merged 
  - remove all object implementation specifc 

- make a plan about further GObject-ification
  Some thoughts on this at http://hans.breuer.org/dia/dia-todo.htm

Future:

- Make printing backends runtime configurable plug-in


What's the status of the UTF8 #hell (UNICODE_WORK_IN_PROGRESS and
GTK_TALKS_UTF8) ?

        -- Cyrille

-- 
Grumpf.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]