mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 20:25:34 +08:00
[fix] fix control bar width
This commit is contained in:
@@ -10,7 +10,8 @@ int Render::ControlBar() {
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 3.0f);
|
||||
|
||||
if (control_bar_button_pressed_) {
|
||||
ImGui::SetCursorPosX(control_window_width_ + 2);
|
||||
ImGui::SetCursorPosX(is_control_bar_in_left_ ? (control_window_width_ + 5)
|
||||
: 87);
|
||||
// Mouse control
|
||||
std::string mouse = ICON_FA_COMPUTER_MOUSE;
|
||||
if (ImGui::Button(mouse.c_str(), ImVec2(25, 25))) {
|
||||
@@ -45,8 +46,8 @@ int Render::ControlBar() {
|
||||
ImGui::SameLine();
|
||||
}
|
||||
|
||||
ImGui::SetCursorPosX(is_control_bar_in_left_ ? control_window_width_ * 2 - 18
|
||||
: 2);
|
||||
ImGui::SetCursorPosX(
|
||||
is_control_bar_in_left_ ? (control_window_width_ * 2 - 18) : 3);
|
||||
|
||||
std::string control_bar =
|
||||
control_bar_button_pressed_
|
||||
@@ -56,6 +57,7 @@ int Render::ControlBar() {
|
||||
if (ImGui::Button(control_bar.c_str(), ImVec2(15, 25))) {
|
||||
control_bar_button_pressed_ = !control_bar_button_pressed_;
|
||||
control_bar_button_pressed_time_ = ImGui::GetTime();
|
||||
control_window_width_is_changing_ = true;
|
||||
}
|
||||
|
||||
ImGui::PopStyleVar();
|
||||
|
||||
@@ -3,53 +3,13 @@
|
||||
|
||||
int Render::ControlWindow() {
|
||||
auto time_duration = ImGui::GetTime() - control_bar_button_pressed_time_;
|
||||
// if (time_duration <= 0.25f) {
|
||||
// control_window_width_is_changing_ = true;
|
||||
// } else {
|
||||
// control_window_width_is_changing_ = false;
|
||||
// }
|
||||
|
||||
// control_window_width_ =
|
||||
// !control_bar_button_pressed_
|
||||
// ? (time_duration < 0.25f
|
||||
// ? control_window_max_width_ -
|
||||
// (control_window_max_width_ -
|
||||
// control_window_min_width_) *
|
||||
// 4 * time_duration
|
||||
// : control_window_min_width_)
|
||||
// : (time_duration < 0.25f
|
||||
// ? control_window_min_width_ +
|
||||
// (control_window_max_width_ -
|
||||
// control_window_min_width_) *
|
||||
// 4 * time_duration
|
||||
// : control_window_max_width_);
|
||||
|
||||
if (control_window_width_is_changing_) {
|
||||
if (control_bar_button_pressed_) {
|
||||
// control_window_width_ =
|
||||
// control_window_width_is_changing_
|
||||
// ? control_window_min_width_ +
|
||||
// (control_window_max_width_ - control_window_min_width_) *
|
||||
// 4
|
||||
// *
|
||||
// time_duration
|
||||
// : control_window_max_width_;
|
||||
|
||||
control_window_width_ =
|
||||
control_window_min_width_ +
|
||||
(control_window_max_width_ - control_window_min_width_) * 4 *
|
||||
time_duration;
|
||||
|
||||
} else {
|
||||
// control_window_width_ =
|
||||
// control_window_width_is_changing_
|
||||
// ? control_window_max_width_ -
|
||||
// (control_window_max_width_ - control_window_min_width_) *
|
||||
// 4
|
||||
// *
|
||||
// time_duration
|
||||
// : control_window_min_width_;
|
||||
|
||||
control_window_width_ =
|
||||
control_window_max_width_ -
|
||||
(control_window_max_width_ - control_window_min_width_) * 4 *
|
||||
@@ -73,16 +33,31 @@ int Render::ControlWindow() {
|
||||
(control_winodw_pos_.y < title_bar_height_ ||
|
||||
control_winodw_pos_.y >
|
||||
main_window_height_ - control_window_height_)) {
|
||||
ImGui::SetNextWindowPos(
|
||||
ImVec2(0,
|
||||
(control_winodw_pos_.y >= title_bar_height_ &&
|
||||
control_winodw_pos_.y <=
|
||||
main_window_height_ - control_window_height_)
|
||||
? control_winodw_pos_.y
|
||||
: (control_winodw_pos_.y < title_bar_height_
|
||||
? title_bar_height_
|
||||
: (main_window_height_ - control_window_height_))),
|
||||
ImGuiCond_Always);
|
||||
int pos_x = 0;
|
||||
int pos_y = (control_winodw_pos_.y >= title_bar_height_ &&
|
||||
control_winodw_pos_.y <=
|
||||
main_window_height_ - control_window_height_)
|
||||
? control_winodw_pos_.y
|
||||
: (control_winodw_pos_.y < title_bar_height_
|
||||
? title_bar_height_
|
||||
: (main_window_height_ - control_window_height_));
|
||||
|
||||
if (control_bar_button_pressed_) {
|
||||
if (control_window_width_ >= control_window_max_width_) {
|
||||
control_window_width_ = control_window_max_width_;
|
||||
control_window_width_is_changing_ = false;
|
||||
} else {
|
||||
control_window_width_is_changing_ = true;
|
||||
}
|
||||
} else {
|
||||
if (control_window_width_ <= control_window_min_width_) {
|
||||
control_window_width_ = control_window_min_width_;
|
||||
control_window_width_is_changing_ = false;
|
||||
} else {
|
||||
control_window_width_is_changing_ = true;
|
||||
}
|
||||
}
|
||||
ImGui::SetNextWindowPos(ImVec2(pos_x, pos_y), ImGuiCond_Always);
|
||||
is_control_bar_in_left_ = true;
|
||||
} else if (control_winodw_pos_.x > main_window_width_ / 2 ||
|
||||
(control_winodw_pos_.y < title_bar_height_ ||
|
||||
@@ -98,7 +73,7 @@ int Render::ControlWindow() {
|
||||
: (main_window_height_ - control_window_height_));
|
||||
|
||||
if (control_bar_button_pressed_) {
|
||||
if (control_window_width_ > control_window_max_width_) {
|
||||
if (control_window_width_ >= control_window_max_width_) {
|
||||
control_window_width_ = control_window_max_width_;
|
||||
control_window_width_is_changing_ = false;
|
||||
pos_x = main_window_width_ - control_window_max_width_;
|
||||
@@ -107,7 +82,7 @@ int Render::ControlWindow() {
|
||||
pos_x = main_window_width_ - control_window_width_;
|
||||
}
|
||||
} else {
|
||||
if (control_window_width_ < control_window_min_width_) {
|
||||
if (control_window_width_ <= control_window_min_width_) {
|
||||
control_window_width_ = control_window_min_width_;
|
||||
control_window_width_is_changing_ = false;
|
||||
pos_x = main_window_width_ - control_window_min_width_;
|
||||
@@ -116,36 +91,11 @@ int Render::ControlWindow() {
|
||||
pos_x = main_window_width_ - control_window_width_;
|
||||
}
|
||||
}
|
||||
|
||||
// int pos_x =
|
||||
// control_bar_button_pressed_
|
||||
// ? (control_window_width_is_changing_
|
||||
// ? (main_window_width_ - control_window_width_)
|
||||
// : (main_window_width_ - control_window_max_width_))
|
||||
// : (control_window_width_is_changing_
|
||||
// ? (main_window_width_ - control_window_width_)
|
||||
// : (main_window_width_ - control_window_min_width_));
|
||||
|
||||
// int pos_y = (control_winodw_pos_.y >= title_bar_height_ &&
|
||||
// control_winodw_pos_.y <=
|
||||
// main_window_height_ - control_window_height_)
|
||||
// ? control_winodw_pos_.y
|
||||
// : (control_winodw_pos_.y < title_bar_height_
|
||||
// ? title_bar_height_
|
||||
// : (main_window_height_ -
|
||||
// control_window_height_));
|
||||
|
||||
ImGui::SetNextWindowPos(ImVec2(pos_x, pos_y), ImGuiCond_Always);
|
||||
is_control_bar_in_left_ = false;
|
||||
LOG_ERROR("x [{}], y[{}], [{}] | [{}]", pos_x, pos_y, main_window_width_,
|
||||
control_window_width_);
|
||||
}
|
||||
}
|
||||
|
||||
// LOG_ERROR("x[{}], y[{}], w[{}]", control_winodw_pos_.x,
|
||||
// control_winodw_pos_.y,
|
||||
// control_window_width_);
|
||||
|
||||
ImGui::Begin("ControlWindow", nullptr,
|
||||
ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize |
|
||||
ImGuiWindowFlags_NoScrollbar |
|
||||
|
||||
@@ -143,7 +143,7 @@ class Render {
|
||||
int main_window_height_before_maximized_ = 570;
|
||||
int control_window_min_width_ = 20;
|
||||
int control_window_max_width_ = 150;
|
||||
int control_window_width_ = 0;
|
||||
int control_window_width_ = 20;
|
||||
int control_window_height_ = 40;
|
||||
int local_window_width_ = 350;
|
||||
int status_bar_height_ = 20;
|
||||
@@ -198,8 +198,8 @@ class Render {
|
||||
bool show_about_window_ = false;
|
||||
bool show_connection_status_window_ = false;
|
||||
bool window_maximized_ = false;
|
||||
bool streaming_ = true;
|
||||
bool is_client_mode_ = true;
|
||||
bool streaming_ = false;
|
||||
bool is_client_mode_ = false;
|
||||
bool is_control_bar_in_left_ = true;
|
||||
bool control_window_width_is_changing_ = false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user