Enlightenment CVS committal

Author  : leviathan
Project : e17
Module  : libs/etk-perl

Dir     : e17/libs/etk-perl


Modified Files:
        Etk.xs EtkSignals.c Makefile.PL README TODO 


Log Message:
- Complete tree model implementation (now columns can have many models)
- Add alpha to colorpicker
- Add documentation to Etk::Simple

===================================================================
RCS file: /cvs/e/e17/libs/etk-perl/Etk.xs,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -3 -r1.77 -r1.78
--- Etk.xs      21 Jan 2007 01:12:44 -0000      1.77
+++ Etk.xs      29 Jan 2007 13:55:44 -0000      1.78
@@ -222,7 +222,7 @@
        sig = etk_signal_lookup(signal_name, obj->type);
        if(!sig) printf("CANT GET SIG!\n");
        marsh = etk_signal_marshaller_get(sig);
-       
+
        if(marsh == etk_marshaller_VOID__VOID)
          etk_signal_connect_full(sig, obj, ETK_CALLBACK(callback_VOID__VOID), 
cbd, swapped, after);
        else if(marsh == etk_marshaller_VOID__INT)
@@ -239,6 +239,8 @@
          etk_signal_connect_full(sig, obj, 
ETK_CALLBACK(callback_BOOL__DOUBLE), cbd, swapped, after);
        else if(marsh == etk_marshaller_BOOL__POINTER_POINTER)
          etk_signal_connect_full(sig, obj, 
ETK_CALLBACK(callback_BOOL__POINTER_POINTER), cbd, swapped, after);
+       else if(marsh == etk_marshaller_VOID__POINTER_POINTER)
+         etk_signal_connect_full(sig, obj, 
ETK_CALLBACK(callback_VOID__POINTER_POINTER), cbd, swapped, after);
        else
        etk_signal_connect_full(sig, obj, ETK_CALLBACK(callback_VOID__VOID), 
cbd, swapped, after);
 
@@ -817,6 +819,18 @@
       ALIAS:
        CurrentColorGet=1
        
+void
+etk_colorpicker_use_alpha_set(cp, use_alpha)
+       Etk_Colorpicker *       cp
+       Etk_Bool        use_alpha
+       ALIAS:
+       UseAlphaSet=1
+
+Etk_Bool
+etk_colorpicker_use_alpha_get(cp)
+       Etk_Colorpicker *       cp
+       ALIAS:
+       UseAlphaGet=1
 
 void
 etk_colorpicker_current_color_set(cp, color)
@@ -3342,7 +3356,7 @@
       ALIAS:
        ValueGet=1
 
-void
+Etk_Bool
 etk_range_value_set(range, value)
        Etk_Range *     range
        double  value
@@ -4730,6 +4744,96 @@
 
 
 void
+model_fields_set(row, emit_signal, model, ...)
+       Etk_Tree_Row * row
+       Etk_Bool        emit_signal
+       SV * model
+     ALIAS:
+       ModelFieldsSet=1
+       PREINIT:
+       Etk_Tree_Model * etkmodel;
+       SV ** mod;
+       CODE:
+       etkmodel = (Etk_Tree_Model *) SvObj(model, "Etk::Tree::Model");
+       mod = hv_fetch( (HV*)SvRV(model), "_model", 6, 0);
+       if (mod) {
+       int type = SvIV(*mod);
+       switch(type) {
+          case mINT:
+               etk_tree_row_model_fields_set(row, emit_signal, etkmodel, 
SvIV(ST(3)), NULL);
+               break;
+          case mDOUBLE:
+                    etk_tree_row_model_fields_set(row, emit_signal, etkmodel, 
SvNV(ST(3)), NULL);
+                    break;
+                 case mCHECKBOX:
+                    etk_tree_row_model_fields_set(row, emit_signal, etkmodel, 
SvIV(ST(3)), NULL);
+                    break;
+                 case mIMAGE:
+                    if (items == 4)
+                       etk_tree_row_model_fields_set(row, emit_signal, 
etkmodel,
+                          SvPV_nolen(ST(3)), NULL, NULL);
+                    else
+                       etk_tree_row_model_fields_set(row, emit_signal, 
etkmodel,
+                          SvPV_nolen(ST(3)), SvPV_nolen(ST(4)), NULL);
+                    break;
+                 case mPROGRESSBAR:
+                    break;
+                 case mTEXT:
+                    etk_tree_row_model_fields_set(row, emit_signal, etkmodel, 
SvPV_nolen(ST(3)), NULL);
+                    break;
+               }
+            }
+
+
+void
+model_fields_get(row, model)
+       Etk_Tree_Row * row
+       SV * model
+      ALIAS:
+       ModelFieldsGet=1
+       PREINIT:
+       Etk_Tree_Model * mod;
+       SV ** models;
+       int i;
+       Etk_Bool c;
+       double d;
+       char *c1, *c2, *c3;
+       PPCODE:
+       mod = (Etk_Tree_Model *) SvObj(model, "Etk::Tree::Model");
+       models = hv_fetch( (HV*)SvRV(model), "_model", 6, 0);
+       if (models) {
+              int type = SvIV(*models);
+              switch(type) {
+                 case mINT:
+                       etk_tree_row_model_fields_get(row, mod, &i, NULL);
+                       XPUSHs(sv_2mortal(newSViv(i)));
+                    break;
+                 case mDOUBLE:
+                       etk_tree_row_model_fields_get(row, mod, &d, NULL);
+                       XPUSHs(sv_2mortal(newSVnv(d)));
+                       break;
+                 case mCHECKBOX:
+                       etk_tree_row_model_fields_get(row, mod, &c, NULL);
+                       XPUSHs(sv_2mortal(newSViv(c)));
+                       break;
+                 case mIMAGE:
+                       etk_tree_row_model_fields_get(row, mod, &c1, &c2, NULL);
+                       XPUSHs(sv_2mortal(newSVpv(c1, strlen(c1))));
+                       if (c2) XPUSHs(sv_2mortal(newSVpv(c2, strlen(c2))));
+                    break;
+                 case mPROGRESSBAR:
+                       //etk_tree_row_model_fields_get(row, mod, &d, &c1, 
NULL);
+                       //XPUSHs(sv_2mortal(newSVnv(d)));
+                       //XPUSHs(sv_2mortal(newSVpv(c1, strlen(c1))));
+                    break;
+                 case mTEXT:
+                       etk_tree_row_model_fields_get(row, mod, &c1, NULL);
+                       XPUSHs(sv_2mortal(newSVpv(c1, strlen(c1))));
+                    break;
+               }
+            }
+
+void
 fields_set(row, emit_signal, col, ...)
        Etk_Tree_Row * row
        Etk_Bool        emit_signal
@@ -4785,46 +4889,50 @@
        FieldsGet=1
        PREINIT:
        Etk_Tree_Col * column;
+       SV ** models;
        SV ** model;
        int i;
        Etk_Bool c;
        double d;
        char *c1, *c2, *c3;
        PPCODE:
-       // TODO: change this
-
        column = (Etk_Tree_Col *) SvObj(col, "Etk::Tree::Col");
-
-       model = hv_fetch( (HV*)SvRV(col), "_model", 6, 0);
-       if (model) {
-               int type = SvIV(*model);
-               switch(type) {
-                       case mINT:
-                               etk_tree_row_fields_get(row, column, &i, NULL);
-                               XPUSHs(sv_2mortal(newSViv(i)));
-                               break;
-                       case mCHECKBOX:
-                               etk_tree_row_fields_get(row, column, &c, NULL);
-                               XPUSHs(sv_2mortal(newSViv(c)));
-                               break;
-                       case mDOUBLE:
-                               etk_tree_row_fields_get(row, column, &d, NULL);
-                               XPUSHs(sv_2mortal(newSVnv(d)));
-                               break;
-                       case mIMAGE:
-                               etk_tree_row_fields_get(row, column, &c1, NULL);
-                               XPUSHs(sv_2mortal(newSVpv(c1, strlen(c1))));
-                               break;
-                       case mPROGRESSBAR:
-                               etk_tree_row_fields_get(row, column, &d, &c1, 
NULL);
-                               XPUSHs(sv_2mortal(newSVnv(d)));
-                               XPUSHs(sv_2mortal(newSVpv(c1, strlen(c1))));
-                               break;
-                       case mTEXT:
-                               etk_tree_row_fields_get(row, column, &c1, NULL);
-                               XPUSHs(sv_2mortal(newSVpv(c1, strlen(c1))));
-                               break;
-               }
+       models = hv_fetch( (HV*)SvRV(col), "_models", 7, 0);
+       if (models) {
+           AV * mods = (AV *) SvRV(*models);
+          int total = (int)av_len(mods);
+             model = av_fetch(mods, 0, 0);
+             if (model) {
+              int type = SvIV(*model);
+              switch(type) {
+                 case mINT:
+                       etk_tree_row_fields_get(row, column, &i, NULL);
+                       XPUSHs(sv_2mortal(newSViv(i)));
+                    break;
+                 case mDOUBLE:
+                       etk_tree_row_fields_get(row, column, &d, NULL);
+                       XPUSHs(sv_2mortal(newSVnv(d)));
+                       break;
+                 case mCHECKBOX:
+                       etk_tree_row_fields_get(row, column, &c, NULL);
+                       XPUSHs(sv_2mortal(newSViv(c)));
+                       break;
+                 case mIMAGE:
+                       etk_tree_row_fields_get(row, column, &c1, &c2, NULL);
+                       XPUSHs(sv_2mortal(newSVpv(c1, strlen(c1))));
+                       if (c2) XPUSHs(sv_2mortal(newSVpv(c2, strlen(c2))));
+                    break;
+                 case mPROGRESSBAR:
+                       //etk_tree_row_fields_get(row, column, &d, &c1, NULL);
+                       //XPUSHs(sv_2mortal(newSVnv(d)));
+                       //XPUSHs(sv_2mortal(newSVpv(c1, strlen(c1))));
+                    break;
+                 case mTEXT:
+                       etk_tree_row_fields_get(row, column, &c1, NULL);
+                       XPUSHs(sv_2mortal(newSVpv(c1, strlen(c1))));
+                    break;
+               }
+            }
        }
 
 
===================================================================
RCS file: /cvs/e/e17/libs/etk-perl/EtkSignals.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- EtkSignals.c        21 Jan 2007 01:12:44 -0000      1.6
+++ EtkSignals.c        29 Jan 2007 13:55:44 -0000      1.7
@@ -7,7 +7,7 @@
 
    HV *event_hv;
    SV *event_rv;
-   
+
    if(!strcmp(cbd->signal_name, "mouse_up"))
      { 
         Etk_Event_Mouse_Up *event = value;   
@@ -59,9 +59,9 @@
    if(!strcmp(cbd->signal_name, "row_clicked"))
      {
         Etk_Tree_Row * row = val1;
-       Etk_Event_Key_Up *key_event = val2;
+       Etk_Event_Mouse_Up *key_event = (Etk_Event_Mouse_Up *)val2;
        *obj = newSVObj(row, getClass("Etk_Tree_Row"));
-       *event = newSVEventKeyUp(key_event);
+       *event = newSVEventMouseUp(key_event);
      }
 
 }
===================================================================
RCS file: /cvs/e/e17/libs/etk-perl/Makefile.PL,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- Makefile.PL 1 Sep 2006 18:08:07 -0000       1.9
+++ Makefile.PL 29 Jan 2007 13:55:44 -0000      1.10
@@ -3,8 +3,10 @@
 use Devel::PPPort;
 
 # dependency check
+print "Checking for Etk...";
 my $etklib = `etk-config --version`;
 die "I can't run etk-config, make sure that etk is installed, and that 
etk-config is in your path" unless $etklib;
+print "Ok\n";
 
 Devel::PPPort::WriteFile();
 
===================================================================
RCS file: /cvs/e/e17/libs/etk-perl/README,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- README      6 Oct 2006 21:01:49 -0000       1.8
+++ README      29 Jan 2007 13:55:44 -0000      1.9
@@ -34,7 +34,7 @@
 
 COPYRIGHT AND LICENCE
 
-Copyright (C) 2006 by Hisham Mardam Bey
+Copyright (C) 2007 by Chady Kassouf
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself, either Perl version 5.8.7 or,
===================================================================
RCS file: /cvs/e/e17/libs/etk-perl/TODO,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- TODO        21 Jan 2007 01:12:44 -0000      1.23
+++ TODO        29 Jan 2007 13:55:44 -0000      1.24
@@ -1,6 +1,5 @@
 TODO:
-       - Fix Etk_Tree column models
-       - callback system needs to convert event structs to perl equivalents 
+       - complete callback system
        - perldoc everything
        - complete Tests
                * Combobox



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to