[sword-devel] Kylix CLX bindings and test program
Troy A. Griffitts
sword-devel@crosswire.org
Mon, 14 Jan 2002 13:09:28 -0700
Terry,
Sorry, just commited the latest header.
Also, there seems to be symlink errors in the tarball. You'll need to
point them to the current directory, NOT /usr/local/kylix/bin
-Troy.
Terry Biggs wrote:
>
> On Mon, 2002-01-14 at 12:50, Troy A. Griffitts wrote:
> > There is a new 'bindings' subdirectory with a helper flatapi.cpp that
> > exports a flat extern "C" interface the to SWORD API (or some of it, at
> > least for now).
> >
> Troy,
> I'm getting this error
>
> flatapi.cpp: In function `long int SWMgr_getModulesIterator (long
> int)':
> flatapi.cpp:53: warning: ISO C++ forbids declaration of `ModItType'
> with no type
>
> > In bindings/clx you will find Kylix / CLX bindings to the SWORD API.
> >
> > There is a test program under bindings/clx/test1 if anyone would like to
> > see how to use it.
> >
> > * FINALLY: THERE IS A BINARY that I would love to hear the outcome, if
> > you try it on your linux box. Please report on what distro you are
> > experimenting. The tarball contains the Qt version that Kylix wants.
> > Please, also let me know if your default Qt lib worked or if you needed
> > the one in the tarball. I'll paste the code for this program at the end
> > of this message so you can get an idea of how the clx sword components
> > work.
> >
> > * WARNING: The libsword.so that is shipped with the tarball MUST BE USED
> > over any older libsword.so. I just realized IT WAS BUILT WITH NEW
> > DEFAULT ./configure OPTIONS WHICH MEANS IT IS LOOKING FOR sword.conf in
> > /usr/local/etc/sword.conf Please adjust. Thanks again!
> >
> > Usual place:
> >
> > http://www.crosswire.org/sword/ALPHAcckswwlkrfre22034820285912/alpha/
> >
> > file: clxSWORD.tar.gz
> >
> >
> >
> >
> > [KJV][Ephesians 5:2] And walk in love, as Christ also hath loved us, and
> > hath given himself for us an offering and a sacrifice to God for a
> > sweetsmelling savour.
> >
> > Goodnight!
> > -Troy.
> >
> >
> > ______________________________________
> > MainForm.pas:
> >
> > unit MainFrm;
> >
> > interface
> >
> > uses
> > SysUtils, Types, Classes, Variants, QGraphics, QControls, QForms,
> > QDialogs,
> > QStdCtrls, QComCtrls, QExtCtrls, Sword;
> >
> > type
> > TForm1 = class(TForm)
> > Panel1: TPanel;
> > Panel2: TPanel;
> > Panel3: TPanel;
> > TreeView1: TTreeView;
> > Button1: TButton;
> > Edit1: TEdit;
> > Label1: TLabel;
> > TextBrowser1: TTextBrowser;
> > procedure Edit1Change(Sender: TObject);
> > procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
> > procedure Button1Click(Sender: TObject);
> > procedure FormCreate(Sender: TObject);
> > procedure FormShow(Sender: TObject);
> > private
> > procedure lookup();
> > public
> > { Public declarations }
> > end;
> >
> > var
> > Form1: TForm1;
> > mgr : SWMgr;
> >
> > implementation
> >
> > {$R *.xfm}
> >
> > procedure TForm1.Edit1Change(Sender: TObject);
> > begin
> > lookup();
> > end;
> >
> > procedure TForm1.lookup();
> > var
> > module : SWModule;
> > node : TTreeNode;
> >
> > begin
> > node := TreeView1.Selected;
> > if (node <> nil) then
> > begin
> > module := mgr.getModuleByName(node.Text);
> > if (module <> nil) then
> > begin
> > module.setKeyText(Edit1.Text);
> >
> > TextBrowser1.Text :=
> > '<HTML><BODY>' +
> > '<small><b>' + module.getKeyText() + '<b></small> ' +
> > module.getRenderText() +
> > '</BODY></HTML>';
> >
> > Label1.Caption := ': ' + module.getKeyText();
> > end;
> > end;
> > end;
> >
> > procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
> > begin
> > lookup();
> > end;
> >
> > procedure TForm1.Button1Click(Sender: TObject);
> > begin
> > Application.Terminate;
> > end;
> >
> > procedure TForm1.FormCreate(Sender: TObject);
> > begin
> > mgr := SWMgr.Create;
> > end;
> >
> > procedure TForm1.FormShow(Sender: TObject);
> > var
> > root, node : TTreeNode;
> > module : SWModule;
> > modIt : ModIterator;
> > found : Boolean;
> >
> > begin
> > modIt := mgr.getModulesIterator;
> > module := modIt.getValue;
> > while (module <> nil) do
> > begin
> > node := TreeView1.Items.GetFirstNode;
> > found := false;
> > while ((node <> nil) AND (NOT found)) do
> > begin
> > if (node.Text = module.getType) then
> > found := true
> > else node := node.getNextSibling;
> > end;
> > if (node = nil) then
> > node := TreeView1.Items.AddChild(TreeView1.TopItem,
> > module.GetType());
> >
> > TreeView1.Items.AddChild(node, module.GetName());
> >
> > modIt.Next;
> > module := modIt.getValue;
> > end;
> > end;
> >
> > end.
> >
> --
>
> Terry
>
> Rev 1:5
> "...Unto him that loved us, and washed
> us from our sins in his own blood."
>
> <http://gnomesword.sourceforge.net>