Home | History | Annotate | Download | only in webkitsnippets
      1 
      2 void wrapInFunction()
      3 {
      4 
      5     //! [0]
      6     // ...
      7     QWebFrame *frame = myWebPage->mainFrame();
      8     frame->addToJavaScriptWindowObject("someNameForMyObject", myObject);
      9     // ...
     10     //! [0]
     11 #if 0
     12     //! [1]
     13     {
     14         width: ...,
     15         height: ...,
     16         toDataURL: function() { ... },
     17         assignToHTMLImageElement: function(element) { ... }
     18     }
     19     //! [1]
     20 #endif
     21     //! [2]
     22     class MyObject : QObject {
     23         Q_OBJECT
     24         Q_PROPERTY(QPixmap myPixmap READ getPixmap)
     25 
     26     public:
     27         QPixmap getPixmap() const;
     28     };
     29 
     30     /* ... */
     31 
     32     MyObject myObject;
     33     myWebPage.mainFrame()->addToJavaScriptWindowObject("myObject", &myObject);
     34 
     35     //! [2]
     36 #if 0
     37     //! [3]
     38     <html>
     39         <head>
     40             <script>
     41                 function loadImage()
     42                 {
     43                     myObject.myPixmap.assignToHTMLImageElement(document.getElementById("imageElement"));
     44                 }
     45             </script>
     46         </head>
     47         <body onload="loadImage()">
     48             <img id="imageElement" width="300" height="200" />
     49         </body>
     50     </html>
     51 //! [3]
     52 #endif
     53 //! [4]
     54 class MyObject : QObject {
     55         Q_OBJECT
     56 
     57     public slots:
     58         void doSomethingWithWebElement(const QWebElement&);
     59     };
     60 
     61     /* ... */
     62 
     63     MyObject myObject;
     64     myWebPage.mainFrame()->addToJavaScriptWindowObject("myObject", &myObject);
     65 
     66     //! [4]
     67 #if 0
     68     //! [5]
     69     <html>
     70          <head>
     71              <script>
     72                  function runExample() {
     73                     myObject.doSomethingWithWebElement(document.getElementById("someElement"));
     74                  }
     75             </script>
     76          </head>
     77          <body onload="runExample()">
     78              <span id="someElement">Text</span>
     79          </body>
     80      </html>
     81     //! [5]
     82     //! [6]
     83     connect(function);
     84     //! [6]
     85     //! [7]
     86     function myInterestingScriptFunction() { ... }
     87     ...
     88     myQObject.somethingChanged.connect(myInterestingScriptFunction);
     89     //! [7]
     90     //! [8]
     91     myQObject.somethingChanged.connect(myOtherQObject.doSomething);
     92     //! [8]
     93     //! [9]
     94     myQObject.somethingChanged.disconnect(myInterestingFunction);
     95     myQObject.somethingChanged.disconnect(myOtherQObject.doSomething);
     96     //! [9]
     97     //! [10]
     98     myQObject.somethingChanged.connect(thisObject, function)
     99     //! [10]
    100     //! [11]
    101     var form = { x: 123 };
    102     var onClicked = function() { print(this.x); };
    103     myButton.clicked.connect(form, onClicked);
    104     //! [11]
    105     //! [12]
    106     myQObject.somethingChanged.disconnect(thisObject, function);
    107     //! [12]
    108     //! [13]
    109     connect(function);
    110     //! [13]
    111     //! [14]
    112     myQObject.somethingChanged.connect(thisObject, "functionName")
    113     //! [14]
    114     //! [15]
    115     var obj = { x: 123, fun: function() { print(this.x); } };
    116     myQObject.somethingChanged.connect(obj, "fun");
    117     //! [15]
    118     //! [16]
    119     connect(function);
    120     //! [16]
    121     //! [17]
    122     myQObject.somethingChanged.disconnect(thisObject, "functionName");
    123     //! [17]
    124     //! [18]
    125     try {
    126         myQObject.somethingChanged.connect(myQObject, "slotThatDoesntExist");
    127     } catch (e) {
    128         print(e);
    129     }
    130     //! [18]
    131     //! [19]
    132     myQObject.somethingChanged("hello");
    133     //! [19]
    134     //! [20]
    135     myQObject.myOverloadedSlot(10);   // will call the int overload
    136     myQObject.myOverloadedSlot("10"); // will call the QString overload
    137     //! [20]
    138     //! [21]
    139     myQObject['myOverloadedSlot(int)']("10");   // call int overload; the argument is converted to an int
    140     myQObject['myOverloadedSlot(QString)'](10); // call QString overload; the argument is converted to a string
    141     //! [21]
    142     //! [22]
    143     class MyObject : public QObject
    144     {
    145         Q_OBJECT
    146 
    147     public:
    148         Q_INVOKABLE void thisMethodIsInvokableInJavaScript();
    149         void thisMethodIsNotInvokableInJavaScript();
    150 
    151         ...
    152     };
    153     //! [22]
    154     //! [23]
    155         Q_PROPERTY(bool enabled READ enabled WRITE setEnabled)
    156     //! [23]
    157     //! [24]
    158     myQObject.enabled = true;
    159 
    160     ...
    161 
    162     myQObject.enabled = !myQObject.enabled;
    163     //! [24]
    164     //! [25]
    165     myDialog.okButton
    166     //! [25]
    167     //! [26]
    168     myDialog.okButton
    169     myDialog.okButton.objectName = "cancelButton";
    170     // from now on, myDialog.cancelButton references the button
    171     //! [26]
    172 #endif
    173 }
    174 
    175