mirror of
https://github.com/genodelabs/genode.git
synced 2025-05-24 19:24:25 +00:00
decorator: use server API
This commit is contained in:
parent
acb0ddd9ef
commit
c26d30dffc
@ -18,6 +18,7 @@
|
|||||||
#include <os/pixel_rgb565.h>
|
#include <os/pixel_rgb565.h>
|
||||||
#include <os/attached_rom_dataspace.h>
|
#include <os/attached_rom_dataspace.h>
|
||||||
#include <os/reporter.h>
|
#include <os/reporter.h>
|
||||||
|
#include <os/server.h>
|
||||||
|
|
||||||
/* decorator includes */
|
/* decorator includes */
|
||||||
#include <decorator/window_stack.h>
|
#include <decorator/window_stack.h>
|
||||||
@ -36,7 +37,7 @@ namespace Decorator {
|
|||||||
|
|
||||||
struct Decorator::Main : Window_factory_base
|
struct Decorator::Main : Window_factory_base
|
||||||
{
|
{
|
||||||
Signal_receiver &sig_rec;
|
Server::Entrypoint &ep;
|
||||||
|
|
||||||
Nitpicker::Connection nitpicker;
|
Nitpicker::Connection nitpicker;
|
||||||
|
|
||||||
@ -55,8 +56,8 @@ struct Decorator::Main : Window_factory_base
|
|||||||
*/
|
*/
|
||||||
void handle_window_layout_update(unsigned);
|
void handle_window_layout_update(unsigned);
|
||||||
|
|
||||||
Signal_dispatcher<Main> window_layout_dispatcher = {
|
Signal_rpc_member<Main> window_layout_dispatcher = {
|
||||||
sig_rec, *this, &Main::handle_window_layout_update };
|
ep, *this, &Main::handle_window_layout_update };
|
||||||
|
|
||||||
Attached_rom_dataspace window_layout { "window_layout" };
|
Attached_rom_dataspace window_layout { "window_layout" };
|
||||||
|
|
||||||
@ -65,8 +66,8 @@ struct Decorator::Main : Window_factory_base
|
|||||||
*/
|
*/
|
||||||
void handle_pointer_update(unsigned);
|
void handle_pointer_update(unsigned);
|
||||||
|
|
||||||
Signal_dispatcher<Main> pointer_dispatcher = {
|
Signal_rpc_member<Main> pointer_dispatcher = {
|
||||||
sig_rec, *this, &Main::handle_pointer_update };
|
ep, *this, &Main::handle_pointer_update };
|
||||||
|
|
||||||
Attached_rom_dataspace pointer { "pointer" };
|
Attached_rom_dataspace pointer { "pointer" };
|
||||||
|
|
||||||
@ -97,20 +98,20 @@ struct Decorator::Main : Window_factory_base
|
|||||||
*/
|
*/
|
||||||
void handle_nitpicker_sync(unsigned);
|
void handle_nitpicker_sync(unsigned);
|
||||||
|
|
||||||
Signal_dispatcher<Main> nitpicker_sync_dispatcher = {
|
Signal_rpc_member<Main> nitpicker_sync_dispatcher = {
|
||||||
sig_rec, *this, &Main::handle_nitpicker_sync };
|
ep, *this, &Main::handle_nitpicker_sync };
|
||||||
|
|
||||||
Config config { *Genode::env()->heap() };
|
Config config { *Genode::env()->heap() };
|
||||||
|
|
||||||
void handle_config(unsigned);
|
void handle_config(unsigned);
|
||||||
|
|
||||||
Signal_dispatcher<Main> config_dispatcher = {
|
Signal_rpc_member<Main> config_dispatcher = {
|
||||||
sig_rec, *this, &Main::handle_config};
|
ep, *this, &Main::handle_config};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
Main(Signal_receiver &sig_rec) : sig_rec(sig_rec)
|
Main(Server::Entrypoint &ep) : ep(ep)
|
||||||
{
|
{
|
||||||
Genode::config()->sigh(config_dispatcher);
|
Genode::config()->sigh(config_dispatcher);
|
||||||
handle_config(0);
|
handle_config(0);
|
||||||
@ -121,6 +122,10 @@ struct Decorator::Main : Window_factory_base
|
|||||||
nitpicker.framebuffer()->sync_sigh(nitpicker_sync_dispatcher);
|
nitpicker.framebuffer()->sync_sigh(nitpicker_sync_dispatcher);
|
||||||
|
|
||||||
hover_reporter.enabled(true);
|
hover_reporter.enabled(true);
|
||||||
|
|
||||||
|
/* import initial state */
|
||||||
|
handle_pointer_update(0);
|
||||||
|
handle_window_layout_update(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -293,25 +298,18 @@ void Decorator::Main::handle_pointer_update(unsigned)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
/************
|
||||||
{
|
** Server **
|
||||||
static Genode::Signal_receiver sig_rec;
|
************/
|
||||||
|
|
||||||
static Decorator::Main application(sig_rec);
|
namespace Server {
|
||||||
|
|
||||||
/* import initial state */
|
char const *name() { return "decorator_ep"; }
|
||||||
application.handle_pointer_update(0);
|
|
||||||
application.handle_window_layout_update(0);
|
|
||||||
|
|
||||||
/* process incoming signals */
|
size_t stack_size() { return 8*1024*sizeof(long); }
|
||||||
for (;;) {
|
|
||||||
using namespace Genode;
|
|
||||||
|
|
||||||
Signal sig = sig_rec.wait_for_signal();
|
void construct(Entrypoint &ep)
|
||||||
Signal_dispatcher_base *dispatcher =
|
{
|
||||||
dynamic_cast<Signal_dispatcher_base *>(sig.context());
|
static Decorator::Main main(ep);
|
||||||
|
|
||||||
if (dispatcher)
|
|
||||||
dispatcher->dispatch(sig.num());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ TARGET = decorator
|
|||||||
SRC_CC = main.cc texture_by_id.cc default_font.h window.cc
|
SRC_CC = main.cc texture_by_id.cc default_font.h window.cc
|
||||||
SRC_BIN = closer.rgba maximize.rgba minimize.rgba windowed.rgba
|
SRC_BIN = closer.rgba maximize.rgba minimize.rgba windowed.rgba
|
||||||
SRC_BIN += droidsansb10.tff
|
SRC_BIN += droidsansb10.tff
|
||||||
LIBS = base config
|
LIBS = base config server
|
||||||
TFF_DIR = $(call select_from_repositories,src/app/scout/data)
|
TFF_DIR = $(call select_from_repositories,src/app/scout/data)
|
||||||
INC_DIR += $(PRG_DIR)
|
INC_DIR += $(PRG_DIR)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user