Hi again,

I have update all `Entry` and `Embedding` modules to Gtk+ 2.18.3
Except `Entry` and `SpinButton` have little function haven't bind (need
GIcon and GtkBorder that haven't bind).

I will update those detail after i update all modules.

I have compile again before push new patch to avoid user compile failed
with newest version.

I found some problem when i udpate:

For standard, we define name like this:

------------------------------> standard start <------------------------------
Type name:               Remove prefix (Gtk or Gdk) then underscoreToCase

Function name:           Remove prefix (gtk or gdk) then underscoreToCase

Attribute name:          Tyep Name + Attribute Name, example:
                         entryTextLength == Entry type + TextLength attribute 

Signal name:             just signal name, don't add Type name!                 
      
------------------------------> standard end   <------------------------------

And i found some module that make : 
        Signal name == Type Name + Signal Name
Example, signal `copyClipboard` for Entry, wrote to `entryCopyClipboard`.

And this style have two disadvantage:

1-> Easy to confusion, if we don't add Type name before Signal name,
then we can division those difference quickly, otherwise we need saw source
code to confirm it's whether an attribute or signal.

2-> In some module, attribute name is same as signal name (after you
add type name before signal name), then more confusion, i saw some
module have attribute `typeFoo`, but also have signal `foo` exist, so
source code wrote signal name with typeFoo' or typeFooSignal, it's bad
style!

So just keep signal name alone (don't add type name before signal
name) is clear and easy to maintain.
Otherwise you need merge patch manually (can't use diff tool) to avoid
mistake.

If two module have same signal name, example, Entry and TextBuffer have
some signal `copyClipboard`, when `gtk2hs/gtk/Graphics/UI/Gtk.hs.pp`
import those will got conflict error, then you just need hiding one
module's signal name.

We just add suffix `Signal` after signal name when necessary, example
have signal named `show`, so we need change it to `showSignal` to avoid
conflict with Haskell `show` functoin.

Well, talk enough about signal name standard, hope all developer keep
same coding style, then we can update API faster.

Thanks,

  -- Andy



------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Gtk2hs-devel mailing list
Gtk2hs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel

Reply via email to