<?xml version="1.0"?>
<!DOCTYPE abiword PUBLIC "-//ABISOURCE//DTD AWML 1.0 Strict//EN" "http://www.abisource.com/awml.dtd">
<abiword xmlns="http://www.abisource.com/awml.dtd" xml:space="preserve" xmlns:awml="http://www.abisource.com/awml.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:dc="http://purl.org/dc/elements/1.1/" version="1.1.0" fileformat="1.1" styles="unlocked">
<!-- =====================================================================  -->
<!-- This file is an AbiWord document.                                      -->
<!-- AbiWord is a free, Open Source word processor.                         -->
<!-- You may obtain more information about AbiWord at www.abisource.com     -->
<!-- You should not edit this file by hand.                                 -->
<!-- =====================================================================  -->

<metadata>
<m key="dc.format">application/x-abiword</m>
<m key="abiword.generator">AbiWord</m>
<m key="abiword.date_last_changed">Wed May 22 12:33:05 2002</m>
</metadata>
<styles>
<s type="P" name="Normal" basedon="" followedby="Current Settings" props="font-family:Times New Roman; dom-dir:ltr; font-style:normal; margin-left:0pt; text-indent:0in; margin-top:0pt; text-position:normal; font-weight:normal; font-variant:normal; color:000000; text-decoration:none; line-height:1.0; margin-bottom:0pt; text-align:left; margin-right:0pt; bgcolor:transparent; font-size:12pt; widows:2; font-stretch:normal"/>
</styles>
<lists>
<l id="1569421701" parentid="0" type="5" start-value="0" list-delim="%L" list-decimal="NULL"/>
<l id="1854920753" parentid="0" type="5" start-value="0" list-delim="%L" list-decimal="NULL"/>
<l id="1121230294" parentid="1854920753" type="5" start-value="0" list-delim="%L" list-decimal="NULL"/>
<l id="1845949556" parentid="1854920753" type="5" start-value="0" list-delim="%L" list-decimal="NULL"/>
</lists>
<pagesize pagetype="Letter" orientation="portrait" width="8.500000" height="11.000000" units="in" page-scale="1.000000"/>
<section props="page-margin-footer:0.5in; page-margin-header:0.5in">
<p style="Normal"><c props="lang:en-US">AbiWord GTK+2.0 Porting Guide</c></p>
<p style="Normal"><c props="lang:en-US"></c></p>
<p style="Normal"><c props="lang:en-US">Sorry - only covers dialogs for the moment</c></p>
<p style="Normal"><c props="lang:en-US"></c></p>
<p level="1" listid="1854920753" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c props="list-tag:753297402; lang:en-US"></c><field type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal"></field><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">	If you think you can refactor an XP part of a dialog</c><c type="list_label" revision="" props="width:0in; font-family:Times New Roman; color:000000; font-weight:normal; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"> to make everyone's life easier</c><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">, please do!</c></p>
<p level="1" listid="1854920753" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c type="list_label" props="width:0in; list-tag:977308947; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-position:normal; color:000000; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"></c><field type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal"></field><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">	Remove all GtkWindows. Refactor current GtkDialog usage noting that it has a button box and a vbox for contents</c></p>
<p level="1" listid="1854920753" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c type="list_label" props="width:0in; list-tag:839778759; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-position:normal; color:000000; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"></c><field type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal"></field><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">	Use GtkStock items whenever possible</c></p>
<p level="1" listid="1854920753" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c type="list_label" props="width:0in; list-tag:199444570; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-position:normal; color:000000; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"></c><field type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal"></field><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">	Create dialogs using abiDialogNew - see xap_UnixDialogHelper.[h|cpp] for information on these functions. Sets up resizability and titles for you automatically.</c></p>
<p level="1" listid="1854920753" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c type="list_label" props="width:0in; list-tag:213917389; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-position:normal; color:000000; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"></c><field type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal"></field><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">	Make signal callbacks private static member functions</c></p>
<p level="2" listid="1121230294" parentid="1854920753" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:1.0000in"><c type="list_label" props="width:0in; list-tag:861045248; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-position:normal; color:000000; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"></c><field type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal"></field><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">	Make event_XXX functions private too</c></p>
<p level="1" listid="1854920753" parentid="1854920753" style="Normal" props="list-delim:%L; list-decimal:.; list-style:Bullet List; start-value:0; margin-left:0.5000in; text-indent:-0.3000in; field-font:Symbol"><c type="list_label" props="width:0in; list-tag:79640037; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-position:normal; color:000000; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"></c><field type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal"></field><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">	Remove many signal callbacks as you can, such as button-presses, delete events, destroy, ... </c><c type="list_label" revision="" props="width:0in; font-family:Times New Roman; color:000000; font-weight:normal; lang:en-US; font-style:normal; text-position:normal; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt">especially for modal dialogs. </c><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">GtkDialog will do that for you using abiRunModalDialog</c></p>
<p level="1" listid="1854920753" parentid="1854920753" style="Normal" props="list-delim:%L; list-decimal:.; list-style:Bullet List; start-value:0; margin-left:0.5000in; text-indent:-0.3000in; field-font:Symbol"><c type="list_label" props="width:0in; list-tag:1027564417; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-position:normal; color:000000; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"></c><field type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal"></field><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">	Run modal dialogs using abiRunModalDialog. see xap_UnixDialogHelper.[h|cpp] for information on these functions</c></p>
<p level="2" listid="1845949556" parentid="1854920753" style="Normal" props="list-delim:%L; list-decimal:.; list-style:Bullet List; start-value:0; margin-left:1.0000in; text-indent:-0.3000in; field-font:Symbol"><c type="list_label" props="width:0in; list-tag:971350180; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-position:normal; color:000000; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"></c><field type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal"></field><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">	Centers dialog, connects F1 to help system, sets dialog modal, calls gtk_dialog_run, destroys dialog for you when done</c></p>
<p level="1" listid="1854920753" parentid="1854920753" style="Normal" props="list-delim:%L; list-decimal:.; list-style:Bullet List; start-value:0; margin-left:0.5000in; text-indent:-0.3000in; field-font:Symbol"><c type="list_label" props="width:0in; list-tag:1217250064; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-position:normal; color:000000; bgcolor:transparent; text-decoration:none; height:0in; font-size:12pt"></c><field type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal"></field><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">	Run modeless dialogs using abiRunModelessDialog. Similar benefits as abiRunModalDialog</c></p>
<p level="1" listid="1569421701" parentid="0" style="Normal" props="start-value:0; text-indent:-0.3000in; list-style:Bullet List; field-font:Symbol; margin-left:0.5000in"><c props="list-tag:434192190; lang:en-US"></c><field type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal"></field><c type="list_label" props="width:0in; font-family:Times New Roman; font-style:normal; font-weight:normal; lang:en-US; text-decoration:none; bgcolor:transparent; color:000000; font-size:12pt; height:0in; text-position:normal">	Remove as many gtk_object_set_data calls as is possible</c></p>
</section>
</abiword>
