void redraw_creature_view(void) { SYNCDBG(6,"Starting"); TbGraphicsWindow ewnd; struct PlayerInfo *player; struct Thing *thing; //_DK_redraw_creature_view(); return; player = get_my_player(); if (player->field_45F != 2) player->field_45F = 2; update_explored_flags_for_power_sight(player); thing = thing_get(player->controlled_thing_idx); TRACE_THING(thing); if (!thing_is_invalid(thing)) draw_creature_view(thing); if (smooth_on) { store_engine_window(&ewnd,pixel_size); smooth_screen_area(lbDisplay.WScreen, ewnd.x, ewnd.y, ewnd.width, ewnd.height, lbDisplay.GraphicsScreenWidth); } remove_explored_flags_for_power_sight(player); draw_swipe_graphic(); if ((game.numfield_C & 0x20) != 0) { draw_whole_status_panel(); } draw_gui(); if ((game.numfield_C & 0x20) != 0) { draw_overlay_compass(player->minimap_pos_x, player->minimap_pos_y); } message_draw(); gui_draw_all_boxes(); draw_tooltip(); }
void UI_WINDOW::draw() { UI_GADGET *tmp; gr_reset_clip(); font::set_font(f_id); if (foreground_bmap_id >= 0) { gr_set_bitmap(foreground_bmap_id); gr_bitmap(x, y, GR_RESIZE_MENU); } if (flags & WIN_FILLED) { ui_draw_box_out(x, y, x+w-1, y+h-1); } if (flags & WIN_BORDER) { ui_draw_frame(x-BORDER_WIDTH, y-BORDER_WIDTH, x+w+BORDER_WIDTH-1, y+h+BORDER_WIDTH-1); } if (first_gadget) { tmp = first_gadget; do { if (!tmp->hidden) tmp->draw(); tmp = tmp->next; } while (tmp != first_gadget); } if (first_gadget) { tmp = first_gadget; do { if (!tmp->hidden && (tmp->kind == UI_KIND_BUTTON) && ((UI_BUTTON *) tmp)->button_down()){ tmp->draw(); } tmp = tmp->next; } while (tmp != first_gadget); } // draw all xstrs draw_xstrs(); // draw tooltips draw_tooltip(); // convenient debug code for showing mouse coords if(Cmdline_mouse_coords){ int mx, my; mouse_get_pos(&mx, &my); // mprintf(("MOUSE (%d, %d)\n", mx, my)); gr_set_color_fast(&Color_normal); gr_printf_no_resize(mx, my - 12, "%d %d", mx, my); } }
gint leave_notify_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { if( !dragged_window ) { mouse_x = width; mouse_y = height; draw_tooltip(); } return TRUE; }
gint button_press_event( GtkWidget *widget, GdkEventButton *event, gpointer d ) { char cmd[64]; int x, y; mouse_x = x = (int) event->x; mouse_y = y = (int) event->y; if( !(x % ws_width) || !(y % ws_height) ) { /* WS border */ if( x == width - 1 ) x--; if( y == height - 1 ) y--; } /* Button1 changes viewport */ if( event->button == 1 ) { sprintf( cmd, "(pager-goto %ld %d %d)", find_w( x, y ) ? w->id : 0, x, y ); send_command( cmd ); draw_tooltip(); } /* Button2 raises/lowers current window */ else if( event->button == 2 && find_w( x, y ) ) { sprintf( cmd, "(pager-change-depth %ld)", w->id ); send_command( cmd ); draw_tooltip(); } /* Button3 is for dragging the selected window */ else if( event->button == 3 && find_w( x, y ) ) { draw_tooltip(); dragged_window = w; /* Offset of top left from cursor */ offset_x = x - w->w.x; offset_y = y - w->w.y; } return TRUE; }
void draw(draw_buffer_2d & buffer, const rect & r) const { buffer.draw_partial_rounded_rect({r.x0, r.y0, r.x1, r.y0+title_height}, corner_radius, {0.5f,0.5f,0.5f,1}, true, true, false, false); buffer.draw_partial_rounded_rect({r.x0, r.y0+title_height, r.x1, r.y1}, corner_radius, {0.3f,0.3f,0.3f,1}, false, false, true, true); buffer.draw_shadowed_text({r.x0+8, r.y0+6}, caption, {1,1,1,1}); for(size_t i=0; i<inputs.size(); ++i) { const auto loc = get_input_location(r,i); buffer.draw_circle(loc, 8, {1,1,1,1}); buffer.draw_circle(loc, 6, {0.2f,0.2f,0.2f,1}); buffer.draw_shadowed_text(loc + int2(12, -buffer.get_library().default_font.line_height/2), inputs[i], {1,1,1,1}); } for(size_t i=0; i<outputs.size(); ++i) { const auto loc = get_output_location(r,i); buffer.draw_circle(loc, 8, {1,1,1,1}); buffer.draw_circle(loc, 6, {0.2f,0.2f,0.2f,1}); buffer.draw_shadowed_text(loc + int2(-12 - buffer.get_library().default_font.get_text_width(outputs[i]), -buffer.get_library().default_font.line_height/2), outputs[i], {1,1,1,1}); if(i == 1) draw_tooltip(buffer, loc, "Tooltip in an overlay"); } }
gint motion_notify_event( GtkWidget *widget, GdkEventMotion *event, gpointer d ) { GdkModifierType state; if( event->is_hint ) gdk_window_get_pointer( event->window, &mouse_x, &mouse_y, &state ); else { mouse_x = event->x; mouse_y = event->y; state = event->state; } if( dragged_window && state & GDK_BUTTON3_MASK ) { char cmd[64]; sprintf( cmd, "(pager-move-window %ld %d %d %d %d %d %d)", dragged_window->id, mouse_x-offset_x, mouse_y-offset_y, dragged_window->w.width, dragged_window->w.height, mouse_x, mouse_y ); send_command( cmd ); } else draw_tooltip(); return TRUE; }