void draw_background_by_rect(GtkWidget* widget, struct DisplayInfo info, const gchar* xatom_name) { g_message("[%s], %dx%d(%d,%d)\n", __func__, info.width, info.height, info.x, info.y); gtk_widget_set_size_request(widget, info.width, info.height); gtk_window_move(GTK_WINDOW(widget), info.x, info.y); setup_background(widget,NULL,xatom_name); gtk_widget_realize (widget); GdkWindow* gdkwindow = gtk_widget_get_window (widget); gdk_window_set_accept_focus(gdkwindow,FALSE); gdk_window_set_override_redirect (gdkwindow, TRUE); gtk_widget_show (widget); }
/* the main function */ int main( ) { /* we set the mode to mode 0 with bg0 on */ *display_control = MODE0 | BG0_ENABLE; /* setup the background 0 */ setup_background(); /* set initial scroll to 0 */ int xscroll = 0; int yscroll = 0; /* loop forever */ while (1) { /* scroll with the arrow keys */ if (button_pressed(BUTTON_DOWN)) { yscroll++; } if (button_pressed(BUTTON_UP)) { yscroll--; } if (button_pressed(BUTTON_RIGHT)) { xscroll++; } if (button_pressed(BUTTON_LEFT)) { xscroll--; } /* wait for vblank before scrolling */ wait_vblank(); *bg0_x_scroll = xscroll; *bg0_y_scroll = yscroll; /* delay some */ delay(200); } }