Remove one custom container usage.
This commit is contained in:
28
src/html.cc
28
src/html.cc
@ -295,7 +295,7 @@ static void Html_set_link_coordinates(DilloHtml *html, int link, int x, int y)
|
|||||||
|
|
||||||
if (x != -1) {
|
if (x != -1) {
|
||||||
snprintf(data, 64, "?%d,%d", x, y);
|
snprintf(data, 64, "?%d,%d", x, y);
|
||||||
a_Url_set_ismap_coords(html->links->get(link), data);
|
a_Url_set_ismap_coords(html->links.at( link ).get(), data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -305,10 +305,9 @@ static void Html_set_link_coordinates(DilloHtml *html, int link, int x, int y)
|
|||||||
*/
|
*/
|
||||||
static int Html_set_new_link(DilloHtml *html, DilloUrl **url)
|
static int Html_set_new_link(DilloHtml *html, DilloUrl **url)
|
||||||
{
|
{
|
||||||
int nl = html->links->size();
|
html->links.emplace_back( (*url) ? *url : nullptr );
|
||||||
html->links->increase();
|
|
||||||
html->links->set(nl, (*url) ? *url : NULL);
|
return html->links.size() - 1;
|
||||||
return nl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -507,7 +506,7 @@ DilloHtml::DilloHtml(BrowserWindow *p_bw, const DilloUrl *url,
|
|||||||
/* Init page-handling variables */
|
/* Init page-handling variables */
|
||||||
forms = new misc::SimpleVector <DilloHtmlForm*> (1);
|
forms = new misc::SimpleVector <DilloHtmlForm*> (1);
|
||||||
inputs_outside_form = new misc::SimpleVector <DilloHtmlInput*> (1);
|
inputs_outside_form = new misc::SimpleVector <DilloHtmlInput*> (1);
|
||||||
links = new misc::SimpleVector <DilloUrl*> (64);
|
links.reserve(64);
|
||||||
images = new misc::SimpleVector <DilloHtmlImage*> (16);
|
images = new misc::SimpleVector <DilloHtmlImage*> (16);
|
||||||
|
|
||||||
/* Initialize the main widget */
|
/* Initialize the main widget */
|
||||||
@ -556,9 +555,12 @@ DilloHtml::~DilloHtml()
|
|||||||
a_Html_input_delete(inputs_outside_form->get(i));
|
a_Html_input_delete(inputs_outside_form->get(i));
|
||||||
delete(inputs_outside_form);
|
delete(inputs_outside_form);
|
||||||
|
|
||||||
for (int i = 0; i < links->size(); i++)
|
for (auto &link: links)
|
||||||
a_Url_free(links->get(i));
|
// TODO: `DilloUrl` has to become RAII...
|
||||||
delete (links);
|
// TODO: In the interim, a `std::unique_ptr` deleter might
|
||||||
|
// be a good choice.
|
||||||
|
a_Url_free(link.release());
|
||||||
|
links.clear();
|
||||||
|
|
||||||
for (int i = 0; i < images->size(); i++) {
|
for (int i = 0; i < images->size(); i++) {
|
||||||
DilloHtmlImage *img = images->get(i);
|
DilloHtmlImage *img = images->get(i);
|
||||||
@ -749,7 +751,7 @@ bool DilloHtml::HtmlLinkReceiver::enter (Widget *widget, int link, int img,
|
|||||||
} else {
|
} else {
|
||||||
_MSG(" Link ENTER notify...\n");
|
_MSG(" Link ENTER notify...\n");
|
||||||
Html_set_link_coordinates(html, link, x, y);
|
Html_set_link_coordinates(html, link, x, y);
|
||||||
a_UIcmd_set_msg(bw, "%s", URL_STR(html->links->get(link)));
|
a_UIcmd_set_msg(bw, "%s", URL_STR(html->links.at(link).get()));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -770,7 +772,7 @@ bool DilloHtml::HtmlLinkReceiver::press (Widget *widget, int link, int img,
|
|||||||
if (img != -1) {
|
if (img != -1) {
|
||||||
// image menu
|
// image menu
|
||||||
if (link != -1)
|
if (link != -1)
|
||||||
linkurl = html->links->get(link);
|
linkurl = html->links.at(link).get();
|
||||||
const bool_t loaded_img = (html->images->get(img)->image == NULL);
|
const bool_t loaded_img = (html->images->get(img)->image == NULL);
|
||||||
a_UIcmd_image_popup(bw, html->images->get(img)->url, loaded_img,
|
a_UIcmd_image_popup(bw, html->images->get(img)->url, loaded_img,
|
||||||
html->page_url, linkurl);
|
html->page_url, linkurl);
|
||||||
@ -780,7 +782,7 @@ bool DilloHtml::HtmlLinkReceiver::press (Widget *widget, int link, int img,
|
|||||||
a_UIcmd_page_popup(bw, bw->num_page_bugs != 0, html->cssUrls);
|
a_UIcmd_page_popup(bw, bw->num_page_bugs != 0, html->cssUrls);
|
||||||
ret = true;
|
ret = true;
|
||||||
} else {
|
} else {
|
||||||
a_UIcmd_link_popup(bw, html->links->get(link), html->page_url);
|
a_UIcmd_link_popup(bw, html->links.at(link).get(), html->page_url);
|
||||||
ret = true;
|
ret = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -807,7 +809,7 @@ bool DilloHtml::HtmlLinkReceiver::click (Widget *widget, int link, int img,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (link != -1) {
|
if (link != -1) {
|
||||||
DilloUrl *url = html->links->get(link);
|
DilloUrl *url = html->links.at(link).get();
|
||||||
_MSG("clicked on URL %d: %s\n", link, a_Url_str (url));
|
_MSG("clicked on URL %d: %s\n", link, a_Url_str (url));
|
||||||
|
|
||||||
Html_set_link_coordinates(html, link, x, y);
|
Html_set_link_coordinates(html, link, x, y);
|
||||||
|
|||||||
@ -14,6 +14,9 @@
|
|||||||
#ifndef __HTML_COMMON_HH__
|
#ifndef __HTML_COMMON_HH__
|
||||||
#define __HTML_COMMON_HH__
|
#define __HTML_COMMON_HH__
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
#include "url.hh"
|
#include "url.hh"
|
||||||
#include "bw.h"
|
#include "bw.h"
|
||||||
|
|
||||||
@ -212,7 +215,7 @@ public: //BUG: for now everything is public
|
|||||||
/* -------------------------------------------------------------------*/
|
/* -------------------------------------------------------------------*/
|
||||||
lout::misc::SimpleVector<DilloHtmlForm*> *forms;
|
lout::misc::SimpleVector<DilloHtmlForm*> *forms;
|
||||||
lout::misc::SimpleVector<DilloHtmlInput*> *inputs_outside_form;
|
lout::misc::SimpleVector<DilloHtmlInput*> *inputs_outside_form;
|
||||||
lout::misc::SimpleVector<DilloUrl*> *links;
|
std::vector< std::unique_ptr< DilloUrl > > links;
|
||||||
lout::misc::SimpleVector<DilloHtmlImage*> *images;
|
lout::misc::SimpleVector<DilloHtmlImage*> *images;
|
||||||
dw::ImageMapsList maps;
|
dw::ImageMapsList maps;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user