[lazarus] Forms inside a library
Mattias Gaertner
nc-gaertnma at netcologne.de
Mon Mar 17 03:42:59 EST 2003
On Mon, 17 Mar 2003 12:06:17 +1100
Steve Gatenby <steveg at nevets.com.au> wrote:
> Marc - thanks for the reply - I have never used a patch file before, so
> after a little study (ie man patch) I used the following
> 1- saved all between <patch> to </patch> to textfile 'winapipatch'
> 2- placed patch file in /lazarus/lcl/interfaces/gtk directory
> 3- changed to same dir in shell
> 4- tried 'patch gtkwinapiwindow.pp winapipatch
> kept getting errors at this point (probably something I have wrong)
>
> So - I manually applied changes to orig file (cut/paste) and rebuilt
> All seems to be working fine now - really appreciated !
>
> Could you let me know what I did wrong in applying the patch ?
Strange patch. You have to increase the fuzz factor and deactivate space
comparison:
patch -p0 -F4 -l -i diff.txt
Marc, how did you create it?
I applied it to cvs.
Mattias
>
> Thanks
>
> Marc Weustink wrote:
> > At 02:24 17-3-2003 +1100, Steve Gatenby wrote:
> >
> >> Is it possible to display forms contained in a library (lib***.so) ?
> >> I can use libraries for all non-graphical functions without problems,
> >> but fail with "Gtk-Warning **: gtk_type_create(): type
> >> 'LCLWinapiWidget already exists"
> >>
> >> Any ideas on this ??
> >
> >
> > At the time I wrote LCLWinapiWidget I wasn't a gtk expert (and that's
> > still the case :), so the code there is merely based on examples and
> > some GTK internals (I used gtkedit ? as an example).
> >
> > However looking at it now I can imagine your problem. I wrote a little
> > patch based on dox, but couldn't test it. So I didn't commit it to cvs.
> > If you aply the patch and it works, please let me know.
> >
> > Marc
> >
> > <patch>
> > Index: gtkwinapiwindow.pp
> > ===================================================================
> > RCS file:
> > /FPC/CVS/projects/lazarus/lcl/interfaces/gtk/gtkwinapiwindow.pp,v
> > retrieving revision 1.43 diff -u -r1.43 gtkwinapiwindow.pp
> > --- gtkwinapiwindow.pp 30 Dec 2002 17:24:08 -0000 1.43
> > +++ gtkwinapiwindow.pp 16 Mar 2003 23:33:36 -0000
> > @@ -331,10 +331,11 @@
> > end;
> >
> > function GTKAPIWidgetClient_GetType: Guint;
> > const
> > + TYPE_NAME = 'LCLWinapiClient';
> > TheType: Guint = 0;
> > Info: TGTKTypeInfo = (
> > - type_name: 'LCLWinapiClient';
> > + type_name: TYPE_NAME;
> > object_size: SizeOf(TGTKAPIWidgetClient)+100;
> > class_size: SizeOf(TGTKAPIWidgetClientClass)+100;
> > class_init_func: @GTKAPIWidgetClient_ClassInit;
> > @@ -344,8 +345,12 @@
> > base_class_init_func: nil;
> > );
> > begin
> > - if (TheType = 0) then
> > - TheType := gtk_type_unique(gtk_fixed_type, at Info);
> > + if (TheType = 0)
> > + then begin
> > + TheType := gtk_type_from_name(TYPE_NAME);
> > + if TheType = 0
> > + then TheType := gtk_type_unique(gtk_fixed_type, at Info);
> > + end;
> > Result := TheType;
> > end;
> >
> > @@ -674,9 +679,10 @@
> >
> > function GTKAPIWidget_GetType: Guint;
> > const
> > + WAW_NAME = 'LCLWinapiWidget';
> > wawType: Guint = 0;
> > wawInfo: TGTKTypeInfo = (
> > - type_name: 'LCLWinapiWidget';
> > + type_name: WAW_NAME;
> > object_size: SizeOf(TGTKAPIWidget)+100; // a TGTKScrolledWindow
> > class_size: SizeOf(TGTKAPIWidgetClass)+100;
> > class_init_func: @GTKAPIWidget_ClassInit;
> > @@ -687,7 +693,11 @@
> > );
> > begin
> > if (wawType = 0)
> > - then wawType := gtk_type_unique(gtk_scrolled_window_get_type,
> > @wawInfo);+ then begin
> > + wawType := gtk_type_from_name(WAW_NAME);
> > + if wawType = 0
> > + then wawType := gtk_type_unique(gtk_scrolled_window_get_type,
> > @wawInfo);
> > + end;
> > Result := wawType;
> > end;
> > </patch>
> >
> > _________________________________________________________________
> > To unsubscribe: mail lazarus-request at miraclec.com with
> > "unsubscribe" as the Subject
> > archives at http://www.lazarus.freepascal.org/mailarchives
> >
>
>
> _________________________________________________________________
> To unsubscribe: mail lazarus-request at miraclec.com with
> "unsubscribe" as the Subject
> archives at http://www.lazarus.freepascal.org/mailarchives
More information about the Lazarus
mailing list