]> git.lyx.org Git - lyx.git/blobdiff - src/WorkArea.C
Baruch's graphic-inset patch.
[lyx.git] / src / WorkArea.C
index 1e6604ff1a880905f4ece5f7fdafd8ff37f9a5dd..0be0fc9f183cedc0376e192904da80ed08913988 100644 (file)
@@ -53,7 +53,7 @@ extern "C" {
 
 
 WorkArea::WorkArea(BufferView * o, int xpos, int ypos, int width, int height)
-       : owner(o), workareapixmap(0), painter_(*this)
+       : owner_(o), workareapixmap(0), painter_(*this)
 {
        fl_freeze_all_forms();
 
@@ -254,7 +254,7 @@ void WorkArea::scroll_cb(FL_OBJECT * ob, long)
        // If we really want the accellerating scroll we can do that
        // from here. IMHO that is a waste of effort since we already
        // have other ways to move fast around in the document. (Lgb)
-       area->owner->scrollCB(fl_get_scrollbar_value(ob));
+       area->owner_->scrollCB(fl_get_scrollbar_value(ob));
        waitForX();
 }
 
@@ -273,7 +273,7 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
 
        if (!area) return 1;
        
-       switch (event){   
+       switch (event){
        case FL_DRAW:
                if (!area->work_area ||
                    !area->work_area->form->visible)
@@ -281,14 +281,19 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
                lyxerr.debug() << "Workarea event: DRAW" << endl;
                area->createPixmap(area->workWidth(), area->height());
                Lgb_bug_find_hack = true;
-               area->owner->workAreaExpose();
+               //workAreaExpose();
+               area->owner_->workAreaExpose();
                Lgb_bug_find_hack = false;
                break;
        case FL_PUSH:
                if (!ev) break;
                // Should really have used xbutton.state
                lyxerr.debug() << "Workarea event: PUSH" << endl;
-               area->owner->workAreaButtonPress(ev->xbutton.x - ob->x,
+               //workAreaButtonPress(ev->xbutton.x - ob->x,
+               //                  ev->xbutton.y - ob->y,
+               //                  ev->xbutton.button);
+               
+               area->owner_->workAreaButtonPress(ev->xbutton.x - ob->x,
                                           ev->xbutton.y - ob->y,
                                           ev->xbutton.button);
                break; 
@@ -296,7 +301,10 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
                if (!ev) break;
                // Should really have used xbutton.state
                lyxerr.debug() << "Workarea event: RELEASE" << endl;
-               area->owner->workAreaButtonRelease(ev->xbutton.x - ob->x,
+               //workAreaButtonRelease(ev->xbutton.x - ob->x,
+               //                    ev->xbutton.y - ob->y,
+               //                    ev->xbutton.button);
+               area->owner_->workAreaButtonRelease(ev->xbutton.x - ob->x,
                                             ev->xbutton.y - ob->y,
                                             ev->xbutton.button);
                break;
@@ -307,7 +315,11 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
                    fl_get_scrollbar_value(area->scrollbar) != scrollbar_value_old
                        ) {
                        lyxerr.debug() << "Workarea event: MOUSE" << endl;
-                       area->owner->workAreaMotionNotify(ev->xmotion.x - ob->x,
+                       //workAreaMotionNotify(ev->xmotion.x - ob->x,
+                       //                   ev->xmotion.y - ob->y,
+                       //                   ev->xbutton.state);
+                       
+                       area->owner_->workAreaMotionNotify(ev->xmotion.x - ob->x,
                                                    ev->xmotion.y - ob->y,
                                                    ev->xbutton.state);
                }
@@ -316,40 +328,44 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
        //  case FL_KEYBOARD: WorkAreaKeyPress(ob, 0,0,0,ev,0); break;
        case FL_FOCUS:
                lyxerr.debug() << "Workarea event: FOCUS" << endl;
+               //workAreaFocus();
                break;
        case FL_UNFOCUS:
                lyxerr.debug() << "Workarea event: UNFOCUS" << endl;
+               //workAreaUnfocus();
                break;
        case FL_ENTER:
                lyxerr.debug() << "Workarea event: ENTER" << endl;
-               area->owner->enterView();
+               //workAreaEnter();
+               area->owner_->enterView();
                break;
        case FL_LEAVE:
                lyxerr.debug() << "Workarea event: LEAVE" << endl;
-               area->owner->leaveView();
+               //workAreaLeave();
+               area->owner_->leaveView();
                break;
        case FL_DBLCLICK:
                if (!ev) break;
                lyxerr.debug() << "Workarea event: DBLCLICK" << endl;
-               area->owner->doubleClick(ev->xbutton.x - ob->x,
+               //workAreaDoubleClick(ev->xbutton.x - ob->x,
+               //                  ev->xbutton.y - ob->y,
+               //                  ev->xbutton.button);
+               area->owner_->doubleClick(ev->xbutton.x - ob->x,
                                         ev->xbutton.y - ob->y,
                                         ev->xbutton.button);
                break;
        case FL_TRPLCLICK:
                if (!ev) break;
                lyxerr.debug() << "Workarea event: TRPLCLICK" << endl;
-               area->owner->tripleClick(ev->xbutton.x - ob->x,
+               //workAreaTripleClick(ev->xbutton.x - ob->x,
+               //                  ev->xbutton.y - ob->y,
+               //                  ev->xbutton.button);
+               area->owner_->tripleClick(ev->xbutton.x - ob->x,
                                         ev->xbutton.y - ob->y,
                                         ev->xbutton.button);
                break;
        case FL_OTHER:
                if (!ev) break;
-#ifndef XFORMS_CLIPBOARD
-               if (ev->type == SelectionNotify) {
-                       lyxerr.debug() << "Workarea event: SELECTION" << endl;
-                       area->owner->workAreaSelectionNotify(area->work_area->form->window, ev);
-               } else
-#endif
                        lyxerr.debug() << "Workarea event: OTHER" << endl;
 
                break;
@@ -359,25 +375,24 @@ int WorkArea::work_area_handler(FL_OBJECT * ob, int event,
 }
 
 
-#ifdef XFORMS_CLIPBOARD
 static string clipboard_selection;
 static bool clipboard_read = false;
 
-static
+extern "C" {
+       static
 int request_clipboard_cb(FL_OBJECT * /*ob*/, long /*type*/,
                        void const * data, long size) 
 {
        clipboard_selection.erase();
-       if (size == 0) return 0; // no selection
-        
-       clipboard_selection.reserve(size);
-       for (int i = 0; i < size; ++i) {
-               clipboard_selection.push_back(static_cast<char*>(data)[i]);
-       }
+
+       if (size > 0)
+               clipboard_selection.reserve(size);
+       for (int i = 0; i < size; ++i)
+               clipboard_selection += static_cast<char const *>(data)[i];
        clipboard_read = true;
        return 0;
 }
-
+}
 
 string WorkArea::getClipboard() const 
 {
@@ -405,4 +420,3 @@ void WorkArea::putClipboard(string const & s) const
        
        fl_stuff_clipboard(work_area, 0, hold.c_str(), hold.size(), 0);
 }
-#endif