summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcorvid <corvid@lavabit.com>2009-10-29 02:21:08 +0000
committercorvid <corvid@lavabit.com>2009-10-29 02:21:08 +0000
commit21f85b39f22ff0f5cd373a4cfedba115ee533e98 (patch)
tree2f0f83b174694e8bca454480942bc0f1bcdec799
parent2949961d999576c217bb5be79fd643d53eb6698a (diff)
move link signal emitter/receiver from Widget to Layout
http://lists.auriga.wearlab.de/pipermail/dillo-dev/2009-October/006936.html
-rw-r--r--dw/image.cc13
-rw-r--r--dw/layout.cc104
-rw-r--r--dw/layout.hh90
-rw-r--r--dw/selection.cc11
-rw-r--r--dw/textblock.cc4
-rw-r--r--dw/widget.cc106
-rw-r--r--dw/widget.hh114
-rw-r--r--src/form.cc4
-rw-r--r--src/html.cc24
-rw-r--r--src/html_common.hh2
-rw-r--r--src/table.cc4
11 files changed, 212 insertions, 264 deletions
diff --git a/dw/image.cc b/dw/image.cc
index 4230d115..d68ef94a 100644
--- a/dw/image.cc
+++ b/dw/image.cc
@@ -229,7 +229,7 @@ void Image::enterNotifyImpl (core::EventCrossing *event)
core::style::Tooltip *tooltip = getStyle()->x_tooltip;
if (currLink != -1) {
- (void) emitLinkEnter (currLink, -1, -1, -1);
+ (void) layout->emitLinkEnter (this, currLink, -1, -1, -1);
}
if (tooltip) {
tooltip->onEnter();
@@ -243,7 +243,7 @@ void Image::leaveNotifyImpl (core::EventCrossing *event)
if (currLink != -1) {
currLink = -1;
- (void) emitLinkEnter (-1, -1, -1, -1);
+ (void) layout->emitLinkEnter (this, -1, -1, -1, -1);
}
if (tooltip) {
tooltip->onLeave();
@@ -286,11 +286,11 @@ bool Image::motionNotifyImpl (core::EventMotion *event)
/* \todo Using MAP/AREA styles would probably be best */
setCursor(newLink == -1 ? getStyle()->cursor :
core::style::CURSOR_POINTER);
- (void) emitLinkEnter (newLink, -1, -1, -1);
+ (void) layout->emitLinkEnter (this, newLink, -1, -1, -1);
}
} else if (isMap && currLink != -1) {
/* server-side image map */
- (void) emitLinkEnter (currLink, -1, x, y);
+ (void) layout->emitLinkEnter (this, currLink, -1, x, y);
}
}
return true;
@@ -303,7 +303,8 @@ bool Image::buttonPressImpl (core::EventButton *event)
currLink = mapList? mapList->link (mapKey, contentX(event),contentY(event)):
getStyle()->x_link;
if (event->button == 3){
- (void)emitLinkPress(currLink, getStyle()->x_img, -1,-1,event);
+ (void)layout->emitLinkPress(this, currLink, getStyle()->x_img, -1, -1,
+ event);
ret = true;
} else if (event->button == 1 || currLink != -1){
clicking = true;
@@ -320,7 +321,7 @@ bool Image::buttonReleaseImpl (core::EventButton *event)
int x = isMap ? contentX(event) : -1;
int y = isMap ? contentY(event) : -1;
clicking = false;
- emitLinkClick (currLink, getStyle()->x_img, x, y, event);
+ layout->emitLinkClick (this, currLink, getStyle()->x_img, x, y, event);
return true;
}
return false;
diff --git a/dw/layout.cc b/dw/layout.cc
index 75598166..e1f79223 100644
--- a/dw/layout.cc
+++ b/dw/layout.cc
@@ -66,6 +66,110 @@ void Layout::Emitter::emitCanvasSizeChanged (int width,
emitVoid (CANVAS_SIZE_CHANGED, 3, argv);
}
+// ----------------------------------------------------------------------
+
+bool Layout::LinkReceiver::enter (Widget *widget, int link, int img,
+ int x, int y)
+{
+ return false;
+}
+
+bool Layout::LinkReceiver::press (Widget *widget, int link, int img,
+ int x, int y, EventButton *event)
+{
+ return false;
+}
+
+bool Layout::LinkReceiver::release (Widget *widget, int link, int img,
+ int x, int y, EventButton *event)
+{
+ return false;
+}
+
+bool Layout::LinkReceiver::click (Widget *widget, int link, int img,
+ int x, int y, EventButton *event)
+{
+ return false;
+}
+
+// ----------------------------------------------------------------------
+
+bool Layout::LinkEmitter::emitToReceiver (lout::signal::Receiver *receiver,
+ int signalNo, int argc,
+ lout::object::Object **argv)
+{
+ LinkReceiver *linkReceiver = (LinkReceiver*)receiver;
+
+ switch (signalNo) {
+ case ENTER:
+ return linkReceiver->enter ((Widget*)argv[0],
+ ((Integer*)argv[1])->getValue (),
+ ((Integer*)argv[2])->getValue (),
+ ((Integer*)argv[3])->getValue (),
+ ((Integer*)argv[4])->getValue ());
+
+ case PRESS:
+ return linkReceiver->press ((Widget*)argv[0],
+ ((Integer*)argv[1])->getValue (),
+ ((Integer*)argv[2])->getValue (),
+ ((Integer*)argv[3])->getValue (),
+ ((Integer*)argv[4])->getValue (),
+ (EventButton*)argv[5]);
+
+ case RELEASE:
+ return linkReceiver->release ((Widget*)argv[0],
+ ((Integer*)argv[1])->getValue (),
+ ((Integer*)argv[2])->getValue (),
+ ((Integer*)argv[3])->getValue (),
+ ((Integer*)argv[4])->getValue (),
+ (EventButton*)argv[5]);
+
+ case CLICK:
+ return linkReceiver->click ((Widget*)argv[0],
+ ((Integer*)argv[1])->getValue (),
+ ((Integer*)argv[2])->getValue (),
+ ((Integer*)argv[3])->getValue (),
+ ((Integer*)argv[4])->getValue (),
+ (EventButton*)argv[5]);
+
+ default:
+ misc::assertNotReached ();
+ }
+ return false;
+}
+
+bool Layout::LinkEmitter::emitEnter (Widget *widget, int link, int img,
+ int x, int y)
+{
+ Integer ilink (link), iimg (img), ix (x), iy (y);
+ Object *argv[5] = { widget, &ilink, &iimg, &ix, &iy };
+ return emitBool (ENTER, 5, argv);
+}
+
+bool Layout::LinkEmitter::emitPress (Widget *widget, int link, int img,
+ int x, int y, EventButton *event)
+{
+ Integer ilink (link), iimg (img), ix (x), iy (y);
+ Object *argv[6] = { widget, &ilink, &iimg, &ix, &iy, event };
+ return emitBool (PRESS, 6, argv);
+}
+
+bool Layout::LinkEmitter::emitRelease (Widget *widget, int link, int img,
+ int x, int y, EventButton *event)
+{
+ Integer ilink (link), iimg (img), ix (x), iy (y);
+ Object *argv[6] = { widget, &ilink, &iimg, &ix, &iy, event };
+ return emitBool (RELEASE, 6, argv);
+}
+
+bool Layout::LinkEmitter::emitClick (Widget *widget, int link, int img,
+ int x, int y, EventButton *event)
+{
+ Integer ilink (link), iimg (img), ix (x), iy (y);
+ Object *argv[6] = { widget, &ilink, &iimg, &ix, &iy, event };
+ return emitBool (CLICK, 6, argv);
+}
+
// ---------------------------------------------------------------------
Layout::Anchor::~Anchor ()
diff --git a/dw/layout.hh b/dw/layout.hh
index bfc61afd..39311c38 100644
--- a/dw/layout.hh
+++ b/dw/layout.hh
@@ -29,6 +29,78 @@ public:
virtual void canvasSizeChanged (int width, int ascent, int descent);
};
+ class LinkReceiver: public lout::signal::Receiver
+ {
+ public:
+ /**
+ * \brief Called, when a link is entered, left, or the position has
+ * changed.
+ *
+ * When a link is entered, this method is called with the respective
+ * arguments. When a link is left, this method is called with all
+ * three arguments (\em link, \em x, \em y) set to -1.
+ *
+ * When coordinates are supported, a change of the coordinates also
+ * causes emitting this signal.
+ */
+ virtual bool enter (Widget *widget, int link, int img, int x, int y);
+
+ /**
+ * \brief Called, when the user has pressed the mouse button on a
+ * link (but not yet released).
+ *
+ * The causing event is passed as \em event.
+ */
+ virtual bool press (Widget *widget, int link, int img, int x, int y,
+ EventButton *event);
+
+ /**
+ * \brief Called, when the user has released the mouse button on a
+ * link.
+ *
+ * The causing event is passed as \em event.
+ */
+ virtual bool release (Widget *widget, int link, int img, int x, int y,
+ EventButton *event);
+
+ /**
+ * \brief Called, when the user has clicked on a link.
+ *
+ * For mouse interaction, this is equivalent to "press" and "release"
+ * on the same link. In this case, \em event contains the "release"
+ * event.
+ *
+ *
+ * When activating links via keyboard is supported, only a "clicked"
+ * signal will be emitted, and \em event will be NULL.
+ */
+ virtual bool click (Widget *widget, int link, int img, int x, int y,
+ EventButton *event);
+ };
+
+ class LinkEmitter: public lout::signal::Emitter
+ {
+ private:
+ enum { ENTER, PRESS, RELEASE, CLICK };
+
+ protected:
+ bool emitToReceiver (lout::signal::Receiver *receiver, int signalNo,
+ int argc, lout::object::Object **argv);
+
+ public:
+ inline void connectLink (LinkReceiver *receiver) { connect (receiver); }
+
+ bool emitEnter (Widget *widget, int link, int img, int x, int y);
+ bool emitPress (Widget *widget, int link, int img, int x, int y,
+ EventButton *event);
+ bool emitRelease (Widget *widget, int link, int img, int x, int y,
+ EventButton *event);
+ bool emitClick (Widget *widget, int link, int img, int x, int y,
+ EventButton *event);
+ };
+
+ LinkEmitter linkEmitter;
+
private:
class Emitter: public lout::signal::Emitter
{
@@ -141,6 +213,24 @@ public:
Layout (Platform *platform);
~Layout ();
+ inline void connectLink (LinkReceiver *receiver)
+ { linkEmitter.connectLink (receiver); }
+
+ inline bool emitLinkEnter (Widget *w, int link, int img, int x, int y)
+ { return linkEmitter.emitEnter (w, link, img, x, y); }
+
+ inline bool emitLinkPress (Widget *w, int link, int img,
+ int x, int y, EventButton *event)
+ { return linkEmitter.emitPress (w, link, img, x, y, event); }
+
+ inline bool emitLinkRelease (Widget *w, int link, int img,
+ int x, int y, EventButton *event)
+ { return linkEmitter.emitRelease (w, link, img, x, y, event); }
+
+ inline bool emitLinkClick (Widget *w, int link, int img,
+ int x, int y, EventButton *event)
+ { return linkEmitter.emitClick (w, link, img, x, y, event); }
+
lout::misc::ZoneAllocator *textZone;
void addWidget (Widget *widget);
diff --git a/dw/selection.cc b/dw/selection.cc
index 08d3bf00..275eddaa 100644
--- a/dw/selection.cc
+++ b/dw/selection.cc
@@ -118,8 +118,7 @@ bool SelectionState::buttonPress (Iterator *it, int charPos, int linkNo,
if (linkNo != -1) {
// link handling
if (event) {
- // return value is ignored
- itWidget->emitLinkPress (linkNo, -1, -1, -1, event);
+ (void) layout->emitLinkPress (itWidget, linkNo, -1, -1, -1, event);
resetLink ();
linkState = LINK_PRESSED;
linkButton = event->button;
@@ -162,7 +161,7 @@ bool SelectionState::buttonPress (Iterator *it, int charPos, int linkNo,
} else {
if (event && event->button == 3) {
// menu popup
- itWidget->emitLinkPress (-1, -1, -1, -1, event);
+ layout->emitLinkPress (itWidget, -1, -1, -1, -1, event);
ret = true;
}
}
@@ -182,14 +181,12 @@ bool SelectionState::buttonRelease (Iterator *it, int charPos, int linkNo,
// link handling
ret = true;
if (linkNo != -1)
- // return value is ignored
- itWidget->emitLinkRelease (linkNo, -1, -1, -1, event);
+ (void) layout->emitLinkRelease (itWidget, linkNo, -1, -1, -1, event);
// The link where the user clicked the mouse button?
if (linkNo == linkNumber) {
resetLink ();
- // return value is ignored
- itWidget->emitLinkClick (linkNo, -1, -1, -1, event);
+ (void) layout->emitLinkClick (itWidget, linkNo, -1, -1, -1, event);
} else {
if (event->button == 1)
// Reset links and switch to selection mode. The selection
diff --git a/dw/textblock.cc b/dw/textblock.cc
index 365d9b14..13709042 100644
--- a/dw/textblock.cc
+++ b/dw/textblock.cc
@@ -548,7 +548,7 @@ bool Textblock::motionNotifyImpl (core::EventMotion *event)
hoverTooltip->onMotion ();
if (hoverLink != linkOld)
- return emitLinkEnter (hoverLink, -1, -1, -1);
+ return layout->emitLinkEnter (this, hoverLink, -1, -1, -1);
else
return hoverLink != -1;
}
@@ -561,7 +561,7 @@ void Textblock::enterNotifyImpl (core::EventCrossing *event)
void Textblock::leaveNotifyImpl (core::EventCrossing *event)
{
hoverLink = -1;
- (void) emitLinkEnter (hoverLink, -1, -1, -1);
+ (void) layout->emitLinkEnter (this, hoverLink, -1, -1, -1);
if (hoverTooltip) {
hoverTooltip->onLeave();
hoverTooltip = NULL;
diff --git a/dw/widget.cc b/dw/widget.cc
index 0555b571..531a25f3 100644
--- a/dw/widget.cc
+++ b/dw/widget.cc
@@ -127,112 +127,6 @@ void Widget::EventEmitter::emitLeaveNotify (Widget *widget,
// ----------------------------------------------------------------------
-bool Widget::LinkReceiver::enter (Widget *widget, int link, int img,
- int x, int y)
-{
- return false;
-}
-
-bool Widget::LinkReceiver::press (Widget *widget, int link, int img,
- int x, int y, EventButton *event)
-{
- return false;
-}
-
-bool Widget::LinkReceiver::release (Widget *widget, int link, int img,
- int x, int y, EventButton *event)
-{
- return false;
-}
-
-bool Widget::LinkReceiver::click (Widget *widget, int link, int img,
- int x, int y, EventButton *event)
-{
- return false;
-}
-
-
-bool Widget::LinkEmitter::emitToReceiver (lout::signal::Receiver *receiver,
- int signalNo, int argc,
- lout::object::Object **argv)
-{
- LinkReceiver *linkReceiver = (LinkReceiver*)receiver;
-
- switch (signalNo) {
- case ENTER:
- return linkReceiver->enter ((Widget*)argv[0],
- ((Integer*)argv[1])->getValue (),
- ((Integer*)argv[2])->getValue (),
- ((Integer*)argv[3])->getValue (),
- ((Integer*)argv[4])->getValue ());
-
- case PRESS:
- return linkReceiver->press ((Widget*)argv[0],
- ((Integer*)argv[1])->getValue (),
- ((Integer*)argv[2])->getValue (),
- ((Integer*)argv[3])->getValue (),
- ((Integer*)argv[4])->getValue (),
- (EventButton*)argv[5]);
-
- case RELEASE:
- return linkReceiver->release ((Widget*)argv[0],
- ((Integer*)argv[1])->getValue (),
- ((Integer*)argv[2])->getValue (),
- ((Integer*)argv[3])->getValue (),
- ((Integer*)argv[4])->getValue (),
- (EventButton*)argv[5]);
-
- case CLICK:
- return linkReceiver->click ((Widget*)argv[0],
- ((Integer*)argv[1])->getValue (),
- ((Integer*)argv[2])->getValue (),
- ((Integer*)argv[3])->getValue (),
- ((Integer*)argv[4])->getValue (),
- (EventButton*)argv[5]);
-
- default:
- misc::assertNotReached ();
- }
-
- /* Compiler happiness. */
- return false;
-}
-
-bool Widget::LinkEmitter::emitEnter (Widget *widget, int link, int img,
- int x, int y)
-{
- Integer ilink (link), iimg (img), ix (x), iy (y);
- Object *argv[5] = { widget, &ilink, &iimg, &ix, &iy };
- return emitBool (ENTER, 5, argv);
-}
-
-bool Widget::LinkEmitter::emitPress (Widget *widget, int link, int img,
- int x, int y, EventButton *event)
-{
- Integer ilink (link), iimg (img), ix (x), iy (y);
- Object *argv[6] = { widget, &ilink, &iimg, &ix, &iy, event };
- return emitBool (PRESS, 6, argv);
-}
-
-bool Widget::LinkEmitter::emitRelease (Widget *widget, int link, int img,
- int x, int y, EventButton *event)
-{
- Integer ilink (link), iimg (img), ix (x), iy (y);
- Object *argv[6] = { widget, &ilink, &iimg, &ix, &iy, event };
- return emitBool (RELEASE, 6, argv);
-}
-
-bool Widget::LinkEmitter::emitClick (Widget *widget, int link, int img,
- int x, int y, EventButton *event)
-{
- Integer ilink (link), iimg (img), ix (x), iy (y);
- Object *argv[6] = { widget, &ilink, &iimg, &ix, &iy, event };
- return emitBool (CLICK, 6, argv);
-}
-
-
-// ----------------------------------------------------------------------
-
int Widget::CLASS_ID = -1;
Widget::Widget ()
diff --git a/dw/widget.hh b/dw/widget.hh
index 56f115f6..b21415bb 100644
--- a/dw/widget.hh
+++ b/dw/widget.hh
@@ -35,80 +35,6 @@ public:
virtual void leaveNotify (Widget *widget, EventCrossing *event);
};
- /**
- * \brief This receiver is for signals related to HTML pages.
- *
- * The \em link argument to all signals defines a number, which has
- * been passed before, e.g. by setting dw::core::style::Style::x_link.
- * When defining this number (e.g in dw::core::style::Style::x_link),
- * and when receiving the signal, the caller must interpret these numbers
- * in a consistent way. In the HTML link block, this number is an index
- * to an array of URLs.
- *
- * \em link = -1 represents an undefined link.
- *
- * The \em img argument to all signals defines a number which has
- * been passed before, e.g. by setting dw::core::style::Style::x_img.
- * When defining this number (e.g in dw::core::style::Style::x_img),
- * and when receiving the signal, the caller must interpret these numbers
- * in a consistent way. In the HTML link block, this number is an index
- * to an array of structures containing image information.
- *
- * \em img = -1 represents an undefined image.
- *
- * \em x and \em y define the coordinates within the link area. They are
- * only used for server-side image maps, see dw::Image.
- *
- * \sa dw::Image, dw::Textblock
- */
- class LinkReceiver: public lout::signal::Receiver
- {
- public:
- /**
- * \brief Called, when a link is entered, left, or the position has
- * changed.
- *
- * When a link is entered, this method is called with the respective
- * arguments. When a link is left, this method is called with all
- * three arguments (\em link, \em x, \em y) set to -1.
- *
- * When coordinates are supported, a change of the coordinates also
- * causes emitting this signal.
- */
- virtual bool enter (Widget *widget, int link, int img, int x, int y);
-
- /**
- * \brief Called, when the user has pressed the mouse button on a
- * link (but not yet released).
- *
- * The causing event is passed as \em event.
- */
- virtual bool press (Widget *widget, int link, int img, int x, int y,
- EventButton *event);
-
- /**
- * \brief Called, when the user has released the mouse button on a
- * link.
- *
- * The causing event is passed as \em event.
- */
- virtual bool release (Widget *widget, int link, int img, int x, int y,
- EventButton *event);
-
- /**
- * \brief Called, when the user has clicked on a link.
- *
- * For mouse interaction, this is equivalent to "press" and "release"
- * on the same link. In this case, \em event contains the "release"
- * event.
- *
- * When activating links via keyboard is supported, only a "clicked"
- * signal will be emitted, and \em event will be NULL.
- */
- virtual bool click (Widget *widget, int link, int img, int x, int y,
- EventButton *event);
- };
-
private:
class EventEmitter: public lout::signal::Emitter
{
@@ -131,27 +57,6 @@ private:
void emitLeaveNotify (Widget *widget, EventCrossing *event);
};
- class LinkEmitter: public lout::signal::Emitter
- {
- private:
- enum { ENTER, PRESS, RELEASE, CLICK };
-
- protected:
- bool emitToReceiver (lout::signal::Receiver *receiver, int signalNo,
- int argc, lout::object::Object **argv);
-
- public:
- inline void connectLink (LinkReceiver *receiver) { connect (receiver); }
-
- bool emitEnter (Widget *widget, int link, int img, int x, int y);
- bool emitPress (Widget *widget, int link, int img, int x, int y,
- EventButton *event);
- bool emitRelease (Widget *widget, int link, int img, int x, int y,
- EventButton *event);
- bool emitClick (Widget *widget, int link, int img, int x, int y,
- EventButton *event);
- };
-
EventEmitter eventEmitter;
style::Style *style;
@@ -248,7 +153,6 @@ public:
int parentRef;
protected:
- LinkEmitter linkEmitter;
/**
* \brief The current allocation: size and position, always relative to the
@@ -373,24 +277,6 @@ public:
inline void connectEvent (EventReceiver *receiver)
{ eventEmitter.connectEvent (receiver); }
- inline void connectLink (LinkReceiver *receiver)
- { linkEmitter.connectLink (receiver); }
-
- inline bool emitLinkEnter (int link, int img, int x, int y)
- { return linkEmitter.emitEnter (this, link, img, x, y); }
-
- inline bool emitLinkPress (int link, int img,
- int x, int y, EventButton *event)
- { return linkEmitter.emitPress (this, link, img, x, y, event); }
-
- inline bool emitLinkRelease (int link, int img,
- int x, int y, EventButton *event)
- { return linkEmitter.emitRelease (this, link, img, x, y, event); }
-
- inline bool emitLinkClick (int link, int img,
- int x, int y, EventButton *event)
- { return linkEmitter.emitClick (this, link, img, x, y, event); }
-
inline bool usesHints () { return flags & USES_HINTS; }
inline bool hasContents () { return flags & HAS_CONTENTS; }
diff --git a/src/form.cc b/src/form.cc
index 4a7e399a..bd10b4f6 100644
--- a/src/form.cc
+++ b/src/form.cc
@@ -856,8 +856,6 @@ void Html_tag_open_button(DilloHtml *html, const char *tag, int tagsize)
HT2TB(html)->addParbreak (5, html->styleEngine->wordStyle ());
S_TOP(html)->textblock = html->dw = page;
- /* right button press for menus for button contents */
- html->connectSignals(page);
value = a_Html_get_attr_wdef(html, tag, tagsize, "value", NULL);
name = a_Html_get_attr_wdef(html, tag, tagsize, "name", NULL);
@@ -1915,8 +1913,6 @@ static Embed *Html_input_image(DilloHtml *html, const char *tag, int tagsize)
HT2TB(html)->addWidget (button, html->styleEngine->style ());
// gtk_widget_set_sensitive(widget, FALSE); /* Until end of FORM! */
- /* a right button press brings up the image menu */
- html->connectSignals((Widget*)Image->dw);
} else {
a_Url_free(url);
}
diff --git a/src/html.cc b/src/html.cc
index 2b318123..dcc2363e 100644
--- a/src/html.cc
+++ b/src/html.cc
@@ -382,9 +382,6 @@ static void Html_add_textblock(DilloHtml *html, int space)
HT2TB(html)->addParbreak (space, html->styleEngine->wordStyle ());
S_TOP(html)->textblock = html->dw = textblock;
S_TOP(html)->hand_over_break = true;
-
- /* Handle it when the user clicks on a link */
- html->connectSignals(textblock);
}
/*
@@ -393,15 +390,16 @@ static void Html_add_textblock(DilloHtml *html, int space)
DilloHtml::DilloHtml(BrowserWindow *p_bw, const DilloUrl *url,
const char *content_type)
{
- /* Init event receiver */
- linkReceiver.html = this;
-
/* Init main variables */
bw = p_bw;
page_url = a_Url_dup(url);
base_url = a_Url_dup(url);
dw = NULL;
+ /* Init event receiver */
+ linkReceiver.html = this;
+ HT2LT(this)->connectLink (&linkReceiver);
+
a_Bw_add_doc(p_bw, this);
/* Init for-parsing variables */
@@ -485,9 +483,6 @@ void DilloHtml::initDw()
/* Create the main widget */
dw = stack->getRef(0)->textblock = new Textblock (prefs.limit_text_width);
- /* Handle it when the user clicks on a link */
- connectSignals(dw);
-
bw->num_page_bugs = 0;
dStr_truncate(bw->page_bugs, 0);
}
@@ -536,14 +531,6 @@ DilloHtml::~DilloHtml()
}
/*
- * Connect all signals of a textblock or an image.
- */
-void DilloHtml::connectSignals(Widget *dw)
-{
- dw->connectLink (&linkReceiver);
-}
-
-/*
* Process the newly arrived html and put it into the page structure.
* (This function is called by Html_callback whenever there's new data)
*/
@@ -2171,7 +2158,6 @@ static void Html_tag_open_img(DilloHtml *html, const char *tag, int tagsize)
new ::object::String(URL_STR(usemap_url)));
a_Url_free (usemap_url);
}
- html->connectSignals((Widget*)Image->dw);
}
/*
@@ -2635,8 +2621,6 @@ static void Html_tag_open_li(DilloHtml *html, const char *tag, int tagsize)
HT2TB(html)->addParbreak (0, wordStyle);
*ref_list_item = list_item;
S_TOP(html)->textblock = html->dw = list_item;
- /* Handle it when the user clicks on a link */
- html->connectSignals(list_item);
if (style->listStyleType == LIST_STYLE_TYPE_NONE) {
// none
diff --git a/src/html_common.hh b/src/html_common.hh
index 8795637f..933274fe 100644
--- a/src/html_common.hh
+++ b/src/html_common.hh
@@ -121,7 +121,7 @@ struct _DilloHtmlState {
class DilloHtml {
private:
- class HtmlLinkReceiver: public dw::core::Widget::LinkReceiver {
+ class HtmlLinkReceiver: public dw::core::Layout::LinkReceiver {
public:
DilloHtml *html;
diff --git a/src/table.cc b/src/table.cc
index c8f904b5..43304206 100644
--- a/src/table.cc
+++ b/src/table.cc
@@ -292,10 +292,6 @@ static void Html_tag_open_table_cell(DilloHtml *html,
((dw::Table*)S_TOP(html)->table)->addCell (col_tb, colspan, rowspan);
S_TOP(html)->textblock = html->dw = col_tb;
-
- /* Handle it when the user clicks on a link */
- html->connectSignals(col_tb);
-
break;
default: