mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 17:35:34 -04:00
fix some behavior
This commit is contained in:
parent
b7bbc1a250
commit
01c133af76
@ -181,7 +181,7 @@ void GuiFrame::add_item(GuiItem* item) {
|
|||||||
found = true;
|
found = true;
|
||||||
if (!found) {
|
if (!found) {
|
||||||
_items.push_back(Box(item));
|
_items.push_back(Box(item));
|
||||||
this->recompute_frame();
|
// this->recompute_frame();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -189,6 +189,7 @@ void GuiFrame::remove_item(GuiItem* item) {
|
|||||||
Boxes::iterator i = find_box(item);
|
Boxes::iterator i = find_box(item);
|
||||||
if (i == _items.end())
|
if (i == _items.end())
|
||||||
return;
|
return;
|
||||||
|
item->unmanage();
|
||||||
(*i).erase_all_links();
|
(*i).erase_all_links();
|
||||||
// should NEVER link forward in the items, only backward, so it should be
|
// should NEVER link forward in the items, only backward, so it should be
|
||||||
// safe to start here, and go to the end
|
// safe to start here, and go to the end
|
||||||
@ -207,7 +208,6 @@ void GuiFrame::remove_item(GuiItem* item) {
|
|||||||
// now get rid of the thing itself
|
// now get rid of the thing itself
|
||||||
_items.erase(i);
|
_items.erase(i);
|
||||||
this->recompute();
|
this->recompute();
|
||||||
item->unmanage();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiFrame::pack_item(GuiItem* item, Packing rel, GuiItem* to, float gap) {
|
void GuiFrame::pack_item(GuiItem* item, Packing rel, GuiItem* to, float gap) {
|
||||||
@ -223,19 +223,19 @@ void GuiFrame::pack_item(GuiItem* item, Packing rel, GuiItem* to, float gap) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
(*box).add_link(Connection(rel, to, gap));
|
(*box).add_link(Connection(rel, to, gap));
|
||||||
this->recompute_frame();
|
// this->recompute_frame();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiFrame::clear_packing(GuiItem* item) {
|
void GuiFrame::clear_packing(GuiItem* item) {
|
||||||
Boxes::iterator box = find_box(item);
|
Boxes::iterator box = find_box(item);
|
||||||
(*box).erase_all_links();
|
(*box).erase_all_links();
|
||||||
this->recompute_frame();
|
// this->recompute_frame();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiFrame::clear_all_packing(void) {
|
void GuiFrame::clear_all_packing(void) {
|
||||||
for (Boxes::iterator i=_items.begin(); i!=_items.end(); ++i)
|
for (Boxes::iterator i=_items.begin(); i!=_items.end(); ++i)
|
||||||
(*i).erase_all_links();
|
(*i).erase_all_links();
|
||||||
this->recompute_frame();
|
// this->recompute_frame();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiFrame::manage(GuiManager* mgr, EventHandler& eh) {
|
void GuiFrame::manage(GuiManager* mgr, EventHandler& eh) {
|
||||||
@ -261,14 +261,14 @@ void GuiFrame::set_scale(float f) {
|
|||||||
for (Boxes::iterator i=_items.begin(); i!=_items.end(); ++i)
|
for (Boxes::iterator i=_items.begin(); i!=_items.end(); ++i)
|
||||||
(*i).get_item()->set_scale(f * (*i).get_scale());
|
(*i).get_item()->set_scale(f * (*i).get_scale());
|
||||||
GuiItem::set_scale(f);
|
GuiItem::set_scale(f);
|
||||||
this->recompute_frame();
|
// this->recompute_frame();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiFrame::set_pos(const LVector3f& p) {
|
void GuiFrame::set_pos(const LVector3f& p) {
|
||||||
for (Boxes::iterator i=_items.begin(); i!=_items.end(); ++i)
|
for (Boxes::iterator i=_items.begin(); i!=_items.end(); ++i)
|
||||||
(*i).get_item()->set_pos(p);
|
(*i).get_item()->set_pos(p);
|
||||||
GuiItem::set_pos(p);
|
GuiItem::set_pos(p);
|
||||||
this->recompute_frame();
|
// this->recompute_frame();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiFrame::output(ostream& os) const {
|
void GuiFrame::output(ostream& os) const {
|
||||||
|
@ -4,6 +4,11 @@
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "framework.h"
|
#include "framework.h"
|
||||||
|
#include <renderRelation.h>
|
||||||
|
#include <queuedConnectionManager.h>
|
||||||
|
#include <queuedConnectionListener.h>
|
||||||
|
#include <modelPool.h>
|
||||||
|
#include <ipc_thread.h>
|
||||||
|
|
||||||
#include <dconfig.h>
|
#include <dconfig.h>
|
||||||
|
|
||||||
@ -28,8 +33,8 @@ Clients clients;
|
|||||||
QueuedConnectionReader* reader;
|
QueuedConnectionReader* reader;
|
||||||
|
|
||||||
static void* internal_monitor(void*) {
|
static void* internal_monitor(void*) {
|
||||||
if (deadrec->is_debug())
|
if (deadrec_cat->is_debug())
|
||||||
deadrec->debug() << "internal monitoring thread started" << endl;
|
deadrec_cat->debug() << "internal monitoring thread started" << endl;
|
||||||
while (!stop_monitoring) {
|
while (!stop_monitoring) {
|
||||||
// check for new clients
|
// check for new clients
|
||||||
while (listener->new_connection_available()) {
|
while (listener->new_connection_available()) {
|
||||||
@ -58,9 +63,12 @@ static void* internal_monitor(void*) {
|
|||||||
while (reader->data_available()) {
|
while (reader->data_available()) {
|
||||||
NetDatagram datagram;
|
NetDatagram datagram;
|
||||||
if (reader->get_data(datagram)) {
|
if (reader->get_data(datagram)) {
|
||||||
if (deadrec_cat->is_debug())
|
if (deadrec_cat->is_debug()) {
|
||||||
deadrec_cat->debug() << "Got datagram " << datagram << " from "
|
deadrec_cat->debug() << "Got datagram ";
|
||||||
<< datagram.get_address() << endl;
|
datagram.dump_hex(deadrec_cat->debug(false));
|
||||||
|
deadrec_cat->debug(false) << " from " << datagram.get_address()
|
||||||
|
<< endl;
|
||||||
|
}
|
||||||
// unpack and deal with the datagram now
|
// unpack and deal with the datagram now
|
||||||
// DO THIS
|
// DO THIS
|
||||||
// part of this includes logic on when to shutdown, I hope
|
// part of this includes logic on when to shutdown, I hope
|
||||||
@ -69,8 +77,8 @@ static void* internal_monitor(void*) {
|
|||||||
// sleep for about 100 milliseconds
|
// sleep for about 100 milliseconds
|
||||||
ipc_traits::sleep(0, 100000);
|
ipc_traits::sleep(0, 100000);
|
||||||
}
|
}
|
||||||
if (deadrec->is_debug())
|
if (deadrec_cat->is_debug())
|
||||||
deadrec->debug() << "internal monitoring thread exiting" << endl;
|
deadrec_cat->debug() << "internal monitoring thread exiting" << endl;
|
||||||
return (void*)0L;
|
return (void*)0L;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,10 +94,10 @@ static void deadrec_setup(void) {
|
|||||||
PT(Connection) rendezvous = cm.open_TCP_server_rendezvous(hostport, 5);
|
PT(Connection) rendezvous = cm.open_TCP_server_rendezvous(hostport, 5);
|
||||||
if (rendezvous.is_null()) {
|
if (rendezvous.is_null()) {
|
||||||
deadrec_cat->fatal() << "cannot get port " << hostport << endl;
|
deadrec_cat->fatal() << "cannot get port " << hostport << endl;
|
||||||
exit();
|
exit(0);
|
||||||
}
|
}
|
||||||
if (deadrec_cat->is_debug())
|
if (deadrec_cat->is_debug())
|
||||||
deadrec_cat->debug() << "Listening for connections on port " << port
|
deadrec_cat->debug() << "Listening for connections on port " << hostport
|
||||||
<< endl;
|
<< endl;
|
||||||
listener = new QueuedConnectionListener(&cm, 0);
|
listener = new QueuedConnectionListener(&cm, 0);
|
||||||
listener->add_connection(rendezvous);
|
listener->add_connection(rendezvous);
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "framework.h"
|
#include "framework.h"
|
||||||
|
#include <renderRelation.h>
|
||||||
|
#include <queuedConnectionManager.h>
|
||||||
|
#include <modelPool.h>
|
||||||
|
|
||||||
#include <dconfig.h>
|
#include <dconfig.h>
|
||||||
|
|
||||||
@ -34,19 +37,19 @@ static void deadrec_setup(void) {
|
|||||||
my_arc = new RenderRelation(render, smiley);
|
my_arc = new RenderRelation(render, smiley);
|
||||||
// open a connection to the receiver
|
// open a connection to the receiver
|
||||||
NetAddress host;
|
NetAddress host;
|
||||||
if (!host.set_host(hostname, port)) {
|
if (!host.set_host(hostname, hostport)) {
|
||||||
deadrec_cat->fatal() << "Unknown host: " << hostname << endl;
|
deadrec_cat->fatal() << "Unknown host: " << hostname << endl;
|
||||||
exit();
|
exit(0);
|
||||||
}
|
}
|
||||||
conn = cm.open_TCP_client_connection(host, 5000);
|
conn = cm.open_TCP_client_connection(host, 5000);
|
||||||
if (conn.is_null()) {
|
if (conn.is_null()) {
|
||||||
deadrec_cat->fatal() << "no connection." << endl;
|
deadrec_cat->fatal() << "no connection." << endl;
|
||||||
exit();
|
exit(0);
|
||||||
}
|
}
|
||||||
if (deadrec->is_debug())
|
if (deadrec_cat->is_debug())
|
||||||
deadrec->debug() << "opened TCP connection to " << hostname << " on port "
|
deadrec_cat->debug() << "opened TCP connection to " << hostname
|
||||||
<< c->get_address().get_port() << " and IP "
|
<< " on port " << conn->get_address().get_port()
|
||||||
<< c->get_address() << endl;
|
<< " and IP " << conn->get_address() << endl;
|
||||||
writer = new ConnectionWriter(&cm, 0);
|
writer = new ConnectionWriter(&cm, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,148 +53,158 @@ extern RenderRelation* first_arc;
|
|||||||
|
|
||||||
// static PT(GuiFrame) global_frame;
|
// static PT(GuiFrame) global_frame;
|
||||||
|
|
||||||
static void setup_gui(void) {
|
static void test1(GuiManager* mgr, Node* font) {
|
||||||
GuiManager* mgr = GuiManager::get_ptr(main_win, mak);
|
|
||||||
PT_Node font = ModelPool::load_model("ttf-comic");
|
|
||||||
// test 1
|
|
||||||
// mgr->add_region(new GuiRegion("test1", 0., 0.25, 0., 0.25));
|
// mgr->add_region(new GuiRegion("test1", 0., 0.25, 0., 0.25));
|
||||||
// mgr->add_label(GuiLabel::make_simple_text_label("test2", font));
|
// mgr->add_label(GuiLabel::make_simple_text_label("test2", font));
|
||||||
// test 2
|
}
|
||||||
// GuiLabel* l1 = GuiLabel::make_simple_text_label("off", font);
|
|
||||||
// GuiLabel* l2 = GuiLabel::make_simple_text_label("on", font);
|
static void test2(GuiManager* mgr, Node* font) {
|
||||||
// GuiRollover* r1 = new GuiRollover("test2", l1, l2);
|
GuiLabel* l1 = GuiLabel::make_simple_text_label("off", font);
|
||||||
// r1->set_scale(0.1);
|
GuiLabel* l2 = GuiLabel::make_simple_text_label("on", font);
|
||||||
// r1->set_pos(LVector3f::rfu(0.25, 0., 0.25));
|
GuiRollover* r1 = new GuiRollover("test2", l1, l2);
|
||||||
// r1->manage(mgr, event_handler);
|
r1->set_scale(0.1);
|
||||||
// test 3
|
r1->set_pos(LVector3f::rfu(0.25, 0., 0.25));
|
||||||
// GuiLabel* l1 = GuiLabel::make_simple_text_label("up", font);
|
r1->manage(mgr, event_handler);
|
||||||
// GuiLabel* l2 = GuiLabel::make_simple_text_label("upr", font);
|
}
|
||||||
// GuiLabel* l3 = GuiLabel::make_simple_text_label("down", font);
|
|
||||||
// GuiLabel* l4 = GuiLabel::make_simple_text_label("downr", font);
|
static void test3(GuiManager* mgr, Node* font) {
|
||||||
// GuiLabel* l5 = GuiLabel::make_simple_text_label("none", font);
|
GuiLabel* l1 = GuiLabel::make_simple_text_label("up", font);
|
||||||
// GuiButton* b1 = new GuiButton("test3", l1, l2, l3, l4, l5);
|
GuiLabel* l2 = GuiLabel::make_simple_text_label("upr", font);
|
||||||
// b1->set_scale(0.1);
|
GuiLabel* l3 = GuiLabel::make_simple_text_label("down", font);
|
||||||
// b1->set_pos(LVector3f::rfu(-0.25, 0., 0.25));
|
GuiLabel* l4 = GuiLabel::make_simple_text_label("downr", font);
|
||||||
// l2->set_foreground_color(1., 1., 0., 1.);
|
GuiLabel* l5 = GuiLabel::make_simple_text_label("none", font);
|
||||||
// l4->set_foreground_color(1., 1., 0., 1.);
|
GuiButton* b1 = new GuiButton("test3", l1, l2, l3, l4, l5);
|
||||||
// l3->set_background_color(1., 1., 1., 0.5);
|
b1->set_scale(0.1);
|
||||||
// l4->set_background_color(1., 1., 1., 0.5);
|
b1->set_pos(LVector3f::rfu(-0.25, 0., 0.25));
|
||||||
// b1->manage(mgr, event_handler);
|
l2->set_foreground_color(1., 1., 0., 1.);
|
||||||
// test 4
|
l4->set_foreground_color(1., 1., 0., 1.);
|
||||||
// GuiRollover* r1 = new GuiRollover("r1",
|
l3->set_background_color(1., 1., 1., 0.5);
|
||||||
// GuiLabel::make_simple_text_label("1",
|
l4->set_background_color(1., 1., 1., 0.5);
|
||||||
// font),
|
b1->manage(mgr, event_handler);
|
||||||
// GuiLabel::make_simple_text_label("!",
|
}
|
||||||
// font));
|
|
||||||
// GuiRollover* r2 = new GuiRollover("r2",
|
static void test4(GuiManager* mgr, Node* font) {
|
||||||
// GuiLabel::make_simple_text_label("2",
|
GuiRollover* r1 = new GuiRollover("r1",
|
||||||
// font),
|
GuiLabel::make_simple_text_label("1",
|
||||||
// GuiLabel::make_simple_text_label("@",
|
font),
|
||||||
// font));
|
GuiLabel::make_simple_text_label("!",
|
||||||
// GuiRollover* r3 = new GuiRollover("r3",
|
font));
|
||||||
// GuiLabel::make_simple_text_label("3",
|
GuiRollover* r2 = new GuiRollover("r2",
|
||||||
// font),
|
GuiLabel::make_simple_text_label("2",
|
||||||
// GuiLabel::make_simple_text_label("#",
|
font),
|
||||||
// font));
|
GuiLabel::make_simple_text_label("@",
|
||||||
// GuiRollover* r4 = new GuiRollover("r4",
|
font));
|
||||||
// GuiLabel::make_simple_text_label("4",
|
GuiRollover* r3 = new GuiRollover("r3",
|
||||||
// font),
|
GuiLabel::make_simple_text_label("3",
|
||||||
// GuiLabel::make_simple_text_label("$",
|
font),
|
||||||
// font));
|
GuiLabel::make_simple_text_label("#",
|
||||||
// GuiRollover* r5 = new GuiRollover("r5",
|
font));
|
||||||
// GuiLabel::make_simple_text_label("5",
|
GuiRollover* r4 = new GuiRollover("r4",
|
||||||
// font),
|
GuiLabel::make_simple_text_label("4",
|
||||||
// GuiLabel::make_simple_text_label("%",
|
font),
|
||||||
// font));
|
GuiLabel::make_simple_text_label("$",
|
||||||
// GuiRollover* r6 = new GuiRollover("r6",
|
font));
|
||||||
// GuiLabel::make_simple_text_label("6",
|
GuiRollover* r5 = new GuiRollover("r5",
|
||||||
// font),
|
GuiLabel::make_simple_text_label("5",
|
||||||
// GuiLabel::make_simple_text_label("^",
|
font),
|
||||||
// font));
|
GuiLabel::make_simple_text_label("%",
|
||||||
// GuiRollover* r7 = new GuiRollover("r7",
|
font));
|
||||||
// GuiLabel::make_simple_text_label("7",
|
GuiRollover* r6 = new GuiRollover("r6",
|
||||||
// font),
|
GuiLabel::make_simple_text_label("6",
|
||||||
// GuiLabel::make_simple_text_label("&",
|
font),
|
||||||
// font));
|
GuiLabel::make_simple_text_label("^",
|
||||||
// GuiRollover* r8 = new GuiRollover("r8",
|
font));
|
||||||
// GuiLabel::make_simple_text_label("8",
|
GuiRollover* r7 = new GuiRollover("r7",
|
||||||
// font),
|
GuiLabel::make_simple_text_label("7",
|
||||||
// GuiLabel::make_simple_text_label("*",
|
font),
|
||||||
// font));
|
GuiLabel::make_simple_text_label("&",
|
||||||
// GuiRollover* r9 = new GuiRollover("r9",
|
font));
|
||||||
// GuiLabel::make_simple_text_label("9",
|
GuiRollover* r8 = new GuiRollover("r8",
|
||||||
// font),
|
GuiLabel::make_simple_text_label("8",
|
||||||
// GuiLabel::make_simple_text_label("(",
|
font),
|
||||||
// font));
|
GuiLabel::make_simple_text_label("*",
|
||||||
// GuiRollover* r0 = new GuiRollover("r0",
|
font));
|
||||||
// GuiLabel::make_simple_text_label("0",
|
GuiRollover* r9 = new GuiRollover("r9",
|
||||||
// font),
|
GuiLabel::make_simple_text_label("9",
|
||||||
// GuiLabel::make_simple_text_label(")",
|
font),
|
||||||
// font));
|
GuiLabel::make_simple_text_label("(",
|
||||||
// GuiFrame* f1 = new GuiFrame("test4");
|
font));
|
||||||
// f1->add_item(r1);
|
GuiRollover* r0 = new GuiRollover("r0",
|
||||||
// f1->add_item(r2);
|
GuiLabel::make_simple_text_label("0",
|
||||||
// f1->pack_item(r2, GuiFrame::UNDER, r1);
|
font),
|
||||||
// f1->pack_item(r2, GuiFrame::RIGHT, r1);
|
GuiLabel::make_simple_text_label(")",
|
||||||
// f1->add_item(r3);
|
font));
|
||||||
// f1->pack_item(r3, GuiFrame::UNDER, r2);
|
GuiFrame* f1 = new GuiFrame("test4");
|
||||||
// f1->pack_item(r3, GuiFrame::RIGHT, r2);
|
f1->add_item(r1);
|
||||||
// f1->add_item(r4);
|
f1->add_item(r2);
|
||||||
// f1->pack_item(r4, GuiFrame::UNDER, r3);
|
f1->pack_item(r2, GuiFrame::UNDER, r1);
|
||||||
// f1->pack_item(r4, GuiFrame::RIGHT, r2);
|
f1->pack_item(r2, GuiFrame::RIGHT, r1);
|
||||||
// f1->add_item(r5);
|
f1->add_item(r3);
|
||||||
// f1->pack_item(r5, GuiFrame::UNDER, r4);
|
f1->pack_item(r3, GuiFrame::UNDER, r2);
|
||||||
// f1->pack_item(r5, GuiFrame::LEFT, r4);
|
f1->pack_item(r3, GuiFrame::RIGHT, r2);
|
||||||
// f1->add_item(r6);
|
f1->add_item(r4);
|
||||||
// f1->pack_item(r6, GuiFrame::UNDER, r5);
|
f1->pack_item(r4, GuiFrame::UNDER, r3);
|
||||||
// f1->pack_item(r6, GuiFrame::LEFT, r5);
|
f1->pack_item(r4, GuiFrame::RIGHT, r2);
|
||||||
// f1->add_item(r7);
|
f1->add_item(r5);
|
||||||
// f1->pack_item(r7, GuiFrame::ABOVE, r6);
|
f1->pack_item(r5, GuiFrame::UNDER, r4);
|
||||||
// f1->pack_item(r7, GuiFrame::LEFT, r6);
|
f1->pack_item(r5, GuiFrame::LEFT, r4);
|
||||||
// f1->add_item(r8);
|
f1->add_item(r6);
|
||||||
// f1->pack_item(r8, GuiFrame::ABOVE, r7);
|
f1->pack_item(r6, GuiFrame::UNDER, r5);
|
||||||
// f1->pack_item(r8, GuiFrame::LEFT, r7);
|
f1->pack_item(r6, GuiFrame::LEFT, r5);
|
||||||
// f1->add_item(r9);
|
f1->add_item(r7);
|
||||||
// f1->pack_item(r9, GuiFrame::ABOVE, r8);
|
f1->pack_item(r7, GuiFrame::ABOVE, r6);
|
||||||
// f1->pack_item(r9, GuiFrame::LEFT, r7);
|
f1->pack_item(r7, GuiFrame::LEFT, r6);
|
||||||
// f1->add_item(r0);
|
f1->add_item(r8);
|
||||||
// f1->pack_item(r0, GuiFrame::ABOVE, r9);
|
f1->pack_item(r8, GuiFrame::ABOVE, r7);
|
||||||
// f1->pack_item(r0, GuiFrame::RIGHT, r9);
|
f1->pack_item(r8, GuiFrame::LEFT, r7);
|
||||||
// f1->set_scale(0.1);
|
f1->add_item(r9);
|
||||||
// f1->set_pos(LVector3f::rfu(0., 0., -0.25));
|
f1->pack_item(r9, GuiFrame::ABOVE, r8);
|
||||||
// f1->manage(mgr, event_handler);
|
f1->pack_item(r9, GuiFrame::LEFT, r7);
|
||||||
|
f1->add_item(r0);
|
||||||
|
f1->pack_item(r0, GuiFrame::ABOVE, r9);
|
||||||
|
f1->pack_item(r0, GuiFrame::RIGHT, r9);
|
||||||
|
f1->set_scale(0.1);
|
||||||
|
f1->set_pos(LVector3f::rfu(0., 0., -0.25));
|
||||||
|
f1->manage(mgr, event_handler);
|
||||||
// cerr << *f1;
|
// cerr << *f1;
|
||||||
// test 5
|
}
|
||||||
// GuiLabel* l1 = GuiLabel::make_simple_text_label("on", font);
|
|
||||||
// GuiLabel* l2 = GuiLabel::make_simple_text_label("off", font);
|
// PT(GuiFrame) global_frame;
|
||||||
// GuiLabel* l3 = GuiLabel::make_simple_text_label("over", font);
|
|
||||||
// GuiLabel* l4 = GuiLabel::make_simple_text_label("easy", font);
|
static void test5(GuiManager* mgr, Node* font) {
|
||||||
// l1->set_background_color(1., 1., 1., 0.3);
|
GuiLabel* l1 = GuiLabel::make_simple_text_label("on", font);
|
||||||
// l2->set_background_color(1., 1., 1., 0.3);
|
GuiLabel* l2 = GuiLabel::make_simple_text_label("off", font);
|
||||||
// l3->set_background_color(1., 1., 1., 0.3);
|
GuiLabel* l3 = GuiLabel::make_simple_text_label("over", font);
|
||||||
// l4->set_background_color(1., 1., 1., 0.3);
|
GuiLabel* l4 = GuiLabel::make_simple_text_label("easy", font);
|
||||||
// GuiRollover* r1 = new GuiRollover("r1", l1, l2);
|
l1->set_background_color(1., 1., 1., 0.3);
|
||||||
// GuiRollover* r2 = new GuiRollover("r2", l3, l4);
|
l2->set_background_color(1., 1., 1., 0.3);
|
||||||
// GuiFrame* f1 = new GuiFrame("test5");
|
l3->set_background_color(1., 1., 1., 0.3);
|
||||||
// f1->add_item(r1);
|
l4->set_background_color(1., 1., 1., 0.3);
|
||||||
// f1->add_item(r2);
|
GuiRollover* r1 = new GuiRollover("r1", l1, l2);
|
||||||
// f1->pack_item(r2, GuiFrame::UNDER, r1);
|
GuiRollover* r2 = new GuiRollover("r2", l3, l4);
|
||||||
// f1->set_scale(0.1);
|
GuiFrame* f1 = new GuiFrame("test5");
|
||||||
// f1->manage(mgr, event_handler);
|
f1->add_item(r1);
|
||||||
// float w1, w2, w3, w4, w;
|
f1->add_item(r2);
|
||||||
// w1 = l1->get_width();
|
f1->pack_item(r2, GuiFrame::UNDER, r1);
|
||||||
// w2 = l2->get_width();
|
f1->set_scale(0.1);
|
||||||
// w3 = l3->get_width();
|
f1->manage(mgr, event_handler);
|
||||||
// w4 = l4->get_width();
|
float w1, w2, w3, w4, w;
|
||||||
// w = (w1>w2)?w1:w2;
|
w1 = l1->get_width();
|
||||||
// w = (w>w3)?w:w3;
|
w2 = l2->get_width();
|
||||||
// w = (w>w4)?w:w4;
|
w3 = l3->get_width();
|
||||||
// l1->set_width(w);
|
w4 = l4->get_width();
|
||||||
// l2->set_width(w);
|
w = (w1>w2)?w1:w2;
|
||||||
// l3->set_width(w);
|
w = (w>w3)?w:w3;
|
||||||
// l4->set_width(w);
|
w = (w>w4)?w:w4;
|
||||||
|
l1->set_width(w);
|
||||||
|
l2->set_width(w);
|
||||||
|
l3->set_width(w);
|
||||||
|
l4->set_width(w);
|
||||||
// global_frame = f1;
|
// global_frame = f1;
|
||||||
// test 6 (the greg test)
|
}
|
||||||
|
|
||||||
|
static void test6(GuiManager* mgr, Node* font) {
|
||||||
|
// the greg test
|
||||||
GuiFrame* f1 = new GuiFrame("canids");
|
GuiFrame* f1 = new GuiFrame("canids");
|
||||||
GuiLabel* b1l1 = GuiLabel::make_simple_text_label("dingo", font);
|
GuiLabel* b1l1 = GuiLabel::make_simple_text_label("dingo", font);
|
||||||
b1l1->set_foreground_color(0., 0., 0., 1.);
|
b1l1->set_foreground_color(0., 0., 0., 1.);
|
||||||
@ -293,6 +303,129 @@ static void setup_gui(void) {
|
|||||||
f1->manage(mgr, event_handler);
|
f1->manage(mgr, event_handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GuiManager* g_mgr;
|
||||||
|
PT(GuiButton) b1;
|
||||||
|
PT(GuiButton) b4;
|
||||||
|
PT(GuiButton) b5;
|
||||||
|
PT(GuiFrame) f1;
|
||||||
|
static bool frame_state = true;
|
||||||
|
|
||||||
|
static void test7(GuiManager* mgr, Node* font) {
|
||||||
|
f1 = new GuiFrame("canids");
|
||||||
|
GuiLabel* b1l1 = GuiLabel::make_simple_text_label("dingo", font);
|
||||||
|
b1l1->set_foreground_color(0., 0., 0., 1.);
|
||||||
|
b1l1->set_background_color(1., 1., 1., 1.);
|
||||||
|
GuiLabel* b1l2 = GuiLabel::make_simple_text_label("dingo", font);
|
||||||
|
b1l2->set_foreground_color(0., 0., 0., 1.);
|
||||||
|
b1l2->set_background_color(1., 1., 0., 1.);
|
||||||
|
GuiLabel* b1l3 = GuiLabel::make_simple_text_label("dingo", font);
|
||||||
|
b1l3->set_foreground_color(1., 1., 1., 1.);
|
||||||
|
b1l3->set_background_color(0., 0., 0., 1.);
|
||||||
|
b1 = new GuiButton("dingo", b1l1, b1l2, b1l3, b1l3, b1l1);
|
||||||
|
b1->set_scale(0.1);
|
||||||
|
f1->add_item(b1);
|
||||||
|
GuiLabel* b2l1 = GuiLabel::make_simple_text_label("jackel", font);
|
||||||
|
b2l1->set_foreground_color(0., 0., 0., 1.);
|
||||||
|
b2l1->set_background_color(1., 1., 1., 1.);
|
||||||
|
GuiLabel* b2l2 = GuiLabel::make_simple_text_label("jackel", font);
|
||||||
|
b2l2->set_foreground_color(0., 0., 0., 1.);
|
||||||
|
b2l2->set_background_color(1., 1., 0., 1.);
|
||||||
|
GuiLabel* b2l3 = GuiLabel::make_simple_text_label("jackel", font);
|
||||||
|
b2l3->set_foreground_color(1., 1., 1., 1.);
|
||||||
|
b2l3->set_background_color(0., 0., 0., 1.);
|
||||||
|
GuiButton* b2 = new GuiButton("jackel", b2l1, b2l2, b2l3, b2l3, b2l1);
|
||||||
|
b2->set_scale(0.1);
|
||||||
|
f1->add_item(b2);
|
||||||
|
GuiLabel* b3l1 = GuiLabel::make_simple_text_label("hyena", font);
|
||||||
|
b3l1->set_foreground_color(0., 0., 0., 1.);
|
||||||
|
b3l1->set_background_color(1., 1., 1., 1.);
|
||||||
|
GuiLabel* b3l2 = GuiLabel::make_simple_text_label("hyena", font);
|
||||||
|
b3l2->set_foreground_color(0., 0., 0., 1.);
|
||||||
|
b3l2->set_background_color(1., 1., 0., 1.);
|
||||||
|
GuiLabel* b3l3 = GuiLabel::make_simple_text_label("hyena", font);
|
||||||
|
b3l3->set_foreground_color(1., 1., 1., 1.);
|
||||||
|
b3l3->set_background_color(0., 0., 0., 1.);
|
||||||
|
GuiButton* b3 = new GuiButton("hyena", b3l1, b3l2, b3l3, b3l3, b3l1);
|
||||||
|
b3->set_scale(0.1);
|
||||||
|
f1->add_item(b3);
|
||||||
|
GuiLabel* b4l1 = GuiLabel::make_simple_text_label("wolf", font);
|
||||||
|
b4l1->set_foreground_color(0., 0., 0., 1.);
|
||||||
|
b4l1->set_background_color(1., 1., 1., 1.);
|
||||||
|
GuiLabel* b4l2 = GuiLabel::make_simple_text_label("wolf", font);
|
||||||
|
b4l2->set_foreground_color(0., 0., 0., 1.);
|
||||||
|
b4l2->set_background_color(1., 1., 0., 1.);
|
||||||
|
GuiLabel* b4l3 = GuiLabel::make_simple_text_label("wolf", font);
|
||||||
|
b4l3->set_foreground_color(1., 1., 1., 1.);
|
||||||
|
b4l3->set_background_color(0., 0., 0., 1.);
|
||||||
|
b4 = new GuiButton("wolf", b4l1, b4l2, b4l3, b4l3, b4l1);
|
||||||
|
b4->set_scale(0.1);
|
||||||
|
f1->add_item(b4);
|
||||||
|
GuiLabel* b5l1 = GuiLabel::make_simple_text_label("fox", font);
|
||||||
|
b5l1->set_foreground_color(0., 0., 0., 1.);
|
||||||
|
b5l1->set_background_color(1., 1., 1., 1.);
|
||||||
|
GuiLabel* b5l2 = GuiLabel::make_simple_text_label("fox", font);
|
||||||
|
b5l2->set_foreground_color(0., 0., 0., 1.);
|
||||||
|
b5l2->set_background_color(1., 1., 0., 1.);
|
||||||
|
GuiLabel* b5l3 = GuiLabel::make_simple_text_label("fox", font);
|
||||||
|
b5l3->set_foreground_color(1., 1., 1., 1.);
|
||||||
|
b5l3->set_background_color(0., 0., 0., 1.);
|
||||||
|
b5 = new GuiButton("fox", b5l1, b5l2, b5l3, b5l3, b5l1);
|
||||||
|
b5->set_scale(0.1);
|
||||||
|
f1->pack_item(b2, GuiFrame::UNDER, b1);
|
||||||
|
f1->pack_item(b2, GuiFrame::LEFT, b1);
|
||||||
|
f1->pack_item(b3, GuiFrame::UNDER, b1);
|
||||||
|
f1->pack_item(b3, GuiFrame::RIGHT, b1);
|
||||||
|
f1->pack_item(b4, GuiFrame::UNDER, b1);
|
||||||
|
f1->pack_item(b4, GuiFrame::ALIGN_LEFT, b1);
|
||||||
|
float w, w1, w2;
|
||||||
|
w1 = b1l1->get_width();
|
||||||
|
w2 = b2l1->get_width();
|
||||||
|
w = (w1>w2)?w1:w2;
|
||||||
|
w2 = b3l1->get_width();
|
||||||
|
w = (w>w2)?w:w2;
|
||||||
|
w2 = b4l1->get_width();
|
||||||
|
w = (w>w2)?w:w2;
|
||||||
|
w2 = b5l1->get_width();
|
||||||
|
w = (w>w2)?w:w2;
|
||||||
|
b1l1->set_width(w);
|
||||||
|
b1l2->set_width(w);
|
||||||
|
b1l3->set_width(w);
|
||||||
|
b2l1->set_width(w);
|
||||||
|
b2l2->set_width(w);
|
||||||
|
b2l3->set_width(w);
|
||||||
|
b3l1->set_width(w);
|
||||||
|
b3l2->set_width(w);
|
||||||
|
b3l3->set_width(w);
|
||||||
|
b4l1->set_width(w);
|
||||||
|
b4l2->set_width(w);
|
||||||
|
b4l3->set_width(w);
|
||||||
|
b5l1->set_width(w);
|
||||||
|
b5l2->set_width(w);
|
||||||
|
b5l3->set_width(w);
|
||||||
|
f1->recompute();
|
||||||
|
f1->manage(mgr, event_handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void setup_gui(void) {
|
||||||
|
GuiManager* mgr = GuiManager::get_ptr(main_win, mak);
|
||||||
|
PT_Node font = ModelPool::load_model("ttf-comic");
|
||||||
|
// test 1
|
||||||
|
// test1(mgr, font);
|
||||||
|
// test 2
|
||||||
|
// test2(mgr, font);
|
||||||
|
// test 3
|
||||||
|
// test3(mgr, font);
|
||||||
|
// test 4
|
||||||
|
// test4(mgr, font);
|
||||||
|
// test 5
|
||||||
|
// test5(mgr, font);
|
||||||
|
// test 6
|
||||||
|
// test6(mgr, font);
|
||||||
|
// test 7
|
||||||
|
test7(mgr, font);
|
||||||
|
g_mgr = mgr;
|
||||||
|
}
|
||||||
|
|
||||||
static void event_2(CPT_Event) {
|
static void event_2(CPT_Event) {
|
||||||
static bool is_setup = false;
|
static bool is_setup = false;
|
||||||
if (!is_setup) {
|
if (!is_setup) {
|
||||||
@ -301,11 +434,31 @@ static void event_2(CPT_Event) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// for test 7
|
||||||
|
static void event_3(CPT_Event) {
|
||||||
|
if (frame_state) {
|
||||||
|
f1->remove_item(b4);
|
||||||
|
f1->add_item(b5);
|
||||||
|
f1->pack_item(b5, GuiFrame::UNDER, b1);
|
||||||
|
f1->pack_item(b5, GuiFrame::ALIGN_LEFT, b1);
|
||||||
|
b5->manage(g_mgr, event_handler);
|
||||||
|
} else {
|
||||||
|
f1->remove_item(b5);
|
||||||
|
f1->add_item(b4);
|
||||||
|
f1->pack_item(b4, GuiFrame::UNDER, b1);
|
||||||
|
f1->pack_item(b4, GuiFrame::ALIGN_LEFT, b1);
|
||||||
|
b4->manage(g_mgr, event_handler);
|
||||||
|
}
|
||||||
|
f1->recompute();
|
||||||
|
frame_state = !frame_state;
|
||||||
|
}
|
||||||
|
|
||||||
void gui_keys(EventHandler&) {
|
void gui_keys(EventHandler&) {
|
||||||
new RenderRelation( lights, dlight );
|
new RenderRelation( lights, dlight );
|
||||||
have_dlight = true;
|
have_dlight = true;
|
||||||
|
|
||||||
event_handler.add_hook("2", event_2);
|
event_handler.add_hook("2", event_2);
|
||||||
|
event_handler.add_hook("3", event_3);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user