@@ -87,6 +87,10 @@ void cScrollbar::setWheelEventRect(rectangle rect) {
|
||||
this->wheel_event_rect = rect;
|
||||
}
|
||||
|
||||
rectangle cScrollbar::getWheelEventRect() const {
|
||||
return wheel_event_rect;
|
||||
}
|
||||
|
||||
long cScrollbar::getPosition() const {
|
||||
return pos;
|
||||
}
|
||||
|
@@ -125,6 +125,7 @@ public:
|
||||
/// @param newStyle The new style.
|
||||
void setStyle(eScrollStyle newStyle);
|
||||
void setWheelEventRect(rectangle);
|
||||
rectangle getWheelEventRect() const;
|
||||
virtual void draw() override;
|
||||
virtual bool handle_event(const sf::Event&) override;
|
||||
/// @copydoc cControl::getSupportedHandlers
|
||||
|
@@ -3062,6 +3062,12 @@ void start_town_edit() {
|
||||
shut_down_menus(2);
|
||||
right_sbar->hide();
|
||||
pal_sbar->show();
|
||||
rectangle pal_rect = pal_sbar->getWheelEventRect();
|
||||
pal_rect.height() = 1 + TYPE_ROWS_DRAWING * 17;
|
||||
pal_sbar->setWheelEventRect(pal_rect);
|
||||
pal_rect = pal_sbar->getBounds();
|
||||
pal_rect.height() = 1 + TYPE_ROWS_DRAWING * 17;
|
||||
pal_sbar->setBounds(pal_rect);
|
||||
set_string("Drawing mode",scenario.ter_types[current_terrain_type].name);
|
||||
place_location();
|
||||
// TODO this is hardcoding cave floor and grass as the only ground terrains
|
||||
@@ -3107,6 +3113,12 @@ void start_out_edit() {
|
||||
set_up_type_buttons(true);
|
||||
right_sbar->hide();
|
||||
pal_sbar->show();
|
||||
rectangle pal_rect = pal_sbar->getWheelEventRect();
|
||||
pal_rect.height() = 1 + TYPE_ROWS_DRAWING * 17;
|
||||
pal_sbar->setWheelEventRect(pal_rect);
|
||||
pal_rect = pal_sbar->getBounds();
|
||||
pal_rect.height() = 1 + TYPE_ROWS_DRAWING * 17;
|
||||
pal_sbar->setBounds(pal_rect);
|
||||
shut_down_menus(4);
|
||||
shut_down_menus(1);
|
||||
set_string("Drawing mode",scenario.ter_types[current_terrain_type].name);
|
||||
@@ -3125,6 +3137,12 @@ void start_out_edit() {
|
||||
void start_type_editing(eDrawMode mode) {
|
||||
right_sbar->hide();
|
||||
pal_sbar->show();
|
||||
rectangle pal_rect = pal_sbar->getWheelEventRect();
|
||||
pal_rect.height() = terrain_buttons_rect.height();
|
||||
pal_sbar->setWheelEventRect(pal_rect);
|
||||
pal_rect = pal_sbar->getBounds();
|
||||
pal_rect.height() = terrain_buttons_rect.height();
|
||||
pal_sbar->setBounds(pal_rect);
|
||||
overall_mode = MODE_EDIT_TYPES;
|
||||
// Remember non-drawing modes
|
||||
scenario.editor_state.overall_mode = MODE_EDIT_TYPES;
|
||||
|
@@ -232,20 +232,21 @@ static void init_sbar(std::shared_ptr<cScrollbar>& sbar, const std::string& name
|
||||
}
|
||||
|
||||
static void init_scrollbars() {
|
||||
right_sbar_rect.top = RIGHT_AREA_UL_Y - 1;
|
||||
right_sbar_rect.top = RIGHT_AREA_UL_Y;
|
||||
right_sbar_rect.left = RIGHT_AREA_UL_X + RIGHT_AREA_WIDTH - 1 - 16;
|
||||
right_sbar_rect.bottom = RIGHT_AREA_UL_Y + RIGHT_AREA_HEIGHT + 1;
|
||||
right_sbar_rect.bottom = RIGHT_AREA_UL_Y + RIGHT_AREA_HEIGHT;
|
||||
right_sbar_rect.right = RIGHT_AREA_UL_X + RIGHT_AREA_WIDTH - 1;
|
||||
rectangle pal_sbar_rect = terrain_buttons_rect;
|
||||
pal_sbar_rect.offset(RIGHT_AREA_UL_X,RIGHT_AREA_UL_Y);
|
||||
pal_sbar_rect.left = pal_sbar_rect.right - 16;
|
||||
pal_sbar_rect.height() = 17 * 16;
|
||||
|
||||
rectangle const right_sbar_event_rect { 5, 287, 405, 577 };
|
||||
rectangle const pal_sbar_event_rect { 5, 287, 279, 581 };
|
||||
rectangle right_sbar_event_rect;
|
||||
right_sbar_event_rect.top = RIGHT_AREA_UL_Y;
|
||||
right_sbar_event_rect.left = RIGHT_AREA_UL_X;
|
||||
right_sbar_event_rect.width() = RIGHT_AREA_WIDTH;
|
||||
right_sbar_event_rect.height() = RIGHT_AREA_HEIGHT;
|
||||
|
||||
init_sbar(right_sbar, "right_sbar", right_sbar_rect, right_sbar_event_rect, NRSONPAGE - 1);
|
||||
init_sbar(pal_sbar, "pal_sbar", pal_sbar_rect, pal_sbar_event_rect, 16);
|
||||
init_sbar(pal_sbar, "pal_sbar", pal_sbar_rect, terrain_buttons_rect, 16);
|
||||
}
|
||||
|
||||
static void init_search_field() {
|
||||
@@ -377,13 +378,13 @@ void init_scened(int argc, char* argv[]) {
|
||||
|
||||
cen_x = 18;
|
||||
cen_y = 18;
|
||||
|
||||
|
||||
Set_up_win();
|
||||
init_scrollbars();
|
||||
init_search_field();
|
||||
init_lb();
|
||||
init_rb();
|
||||
|
||||
Set_up_win();
|
||||
init_screen_locs();
|
||||
load_graphics();
|
||||
cDialog::init();
|
||||
|
Reference in New Issue
Block a user