Skip to content
This repository was archived by the owner on Jun 17, 2024. It is now read-only.

Commit 4e124a2

Browse files
committed
feat: add tab divider
1 parent ea47465 commit 4e124a2

File tree

4 files changed

+61
-4
lines changed

4 files changed

+61
-4
lines changed

src/ui/components/frame-tab.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ typedef struct FrameTabRec_ {
99
LCUI_Widget spinner;
1010
LCUI_Widget text;
1111
LCUI_Widget close;
12+
LCUI_Widget left_divider;
13+
LCUI_Widget right_divider;
1214
} FrameTabRec, *FrameTab;
1315

1416
static LCUI_WidgetPrototype frame_tab_proto;
@@ -30,16 +32,22 @@ static void FrameTab_OnInit(LCUI_Widget w)
3032
self->spinner = LCUIWidget_New("spinner");
3133
self->text = LCUIWidget_New("textview");
3234
self->close = LCUIWidget_New("icon");
35+
self->left_divider = LCUIWidget_New(NULL);
36+
self->right_divider = LCUIWidget_New(NULL);
3337
Icon_SetName(self->icon, "earth");
3438
Icon_SetName(self->close, "close");
3539
Widget_AddClass(self->icon, "c-frame-tab__icon");
3640
Widget_AddClass(self->spinner, "c-frame-tab__spinner");
3741
Widget_AddClass(self->text, "c-frame-tab__text");
3842
Widget_AddClass(self->close, "c-frame-tab__close");
43+
Widget_AddClass(self->left_divider, "c-frame-tab__left-divider");
44+
Widget_AddClass(self->right_divider, "c-frame-tab__right-divider");
3945
Widget_Append(w, self->icon);
4046
Widget_Append(w, self->spinner);
4147
Widget_Append(w, self->text);
4248
Widget_Append(w, self->close);
49+
Widget_Append(w, self->left_divider);
50+
Widget_Append(w, self->right_divider);
4351
Widget_AddClass(w, "c-frame-tab");
4452
Widget_BindEvent(self->close, "click", FrameTab_OnClose, w, NULL);
4553
}

src/ui/stylesheets/_variables.scss

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ $secondary-text-color: #5f6368;
7878
$green: #28a745;
7979

8080
$browser-tabbar-bg: $gray-300;
81+
$browser-btn-add-tab-bg-hover: $gray-400;
82+
$browser-btn-add-tab-bg-active: $gray-500;
83+
$browser-tabbar-line-height: 20px;
84+
85+
$frame-tab-bg-hover: $gray-200;
86+
$frame-tab-divier-color: $gray-600;
87+
8188
$navbar-btn-bg-hover: $gray-300;
8289
$navbar-btn-bg-active: $gray-400;
8390
$border-color: $gray-200;

src/ui/stylesheets/components/_frame-tab.scss

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,31 @@
3838
}
3939
}
4040

41+
.c-frame-tab__left-divider,
42+
.c-frame-tab__right-divider {
43+
top: 8px;
44+
width: 1px;
45+
height: $browser-tabbar-line-height;
46+
position: absolute;
47+
background-color: $frame-tab-divier-color;
48+
}
49+
50+
.c-frame-tab__left-divider {
51+
left: 0;
52+
display: none;
53+
}
54+
55+
.c-frame-tab__right-divider {
56+
right: 0;
57+
}
58+
4159
.c-frame-tab {
4260
width: 100%;
4361
min-width: 140px;
4462
max-width: 15%;
45-
line-height: 20px;
63+
position: relative;
64+
margin-right: -1px;
65+
line-height: $browser-tabbar-line-height;
4666
padding: 8px 32px 8px 8px;
4767
border-top-left-radius: 8px;
4868
border-top-right-radius: 8px;
@@ -58,8 +78,30 @@
5878
}
5979
}
6080

81+
&:first-child {
82+
.c-frame-tab__left-divider {
83+
display: none;
84+
}
85+
}
86+
87+
&:last-child {
88+
.c-frame-tab__left-divider {
89+
display: block;
90+
}
91+
}
92+
93+
&:hover,
94+
&.active {
95+
z-index: 1;
96+
97+
.c-frame-tab__left-divider,
98+
.c-frame-tab__right-divider {
99+
display: none;
100+
}
101+
}
102+
61103
&:hover {
62-
background-color: rgba(255, 255, 255, 0.6);
104+
background-color: $frame-tab-bg-hover;
63105
}
64106

65107
&.active {

src/ui/stylesheets/components/_navbar.scss

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
.c-navbar {
2-
padding: 8px 5px;
2+
padding: 5px 8px;
33
border-bottom: 1px solid $border-color;
44
}
55

66
.c-navbar__btn {
7-
height: 30px;
7+
height: 28px;
88
min-width: 28px;
99
line-height: 28px;
1010
margin-right: 5px;

0 commit comments

Comments
 (0)