|
@@ -445,63 +445,45 @@ void la_GroupDraw(laUiItem *ui, int h){
|
|
void la_TabDraw(laUiItem *ui, int h){
|
|
void la_TabDraw(laUiItem *ui, int h){
|
|
char temp[128] = {0};
|
|
char temp[128] = {0};
|
|
laBoxedTheme *bt = (*ui->Type->Theme);
|
|
laBoxedTheme *bt = (*ui->Type->Theme);
|
|
- laUiList *uil;
|
|
|
|
- int count = 0;
|
|
|
|
- int w; // = (ui->R - ui->L) / count;
|
|
|
|
- int page = 0;
|
|
|
|
- int l = ui->L;
|
|
|
|
-
|
|
|
|
- for (uil = ui->Subs.pFirst; uil; uil = uil->Item.pNext){
|
|
|
|
- count++;
|
|
|
|
- }
|
|
|
|
|
|
+ laUiList *uil; int count = 0, page = 0;real w, l = ui->L;
|
|
|
|
|
|
- w = (ui->R - ui->L) / (count == 0 ? 1 : count);
|
|
|
|
|
|
+ for (uil = ui->Subs.pFirst; uil; uil = uil->Item.pNext){ count++; }
|
|
|
|
+ w = (real)(ui->R - ui->L) / (count == 0 ? 1 : count);
|
|
|
|
|
|
|
|
+ real* bkg=laThemeColor(bt,LA_BT_NORMAL);
|
|
int NoDecal=ui->Flags&LA_UI_FLAGS_NO_DECAL;
|
|
int NoDecal=ui->Flags&LA_UI_FLAGS_NO_DECAL;
|
|
if(!NoDecal){
|
|
if(!NoDecal){
|
|
tnsUseNoTexture();
|
|
tnsUseNoTexture();
|
|
- tnsColor4dv(laThemeColor(bt,LA_BT_NORMAL));
|
|
|
|
- tnsVertex2d(ui->L, ui->U);
|
|
|
|
- tnsVertex2d(ui->R, ui->U);
|
|
|
|
- tnsVertex2d(ui->R, ui->B);
|
|
|
|
- tnsVertex2d(ui->L, ui->B);
|
|
|
|
|
|
+ tnsColor4d(LA_COLOR3(bkg),bkg[3]*0.7);
|
|
|
|
+ tnsVertex2d(ui->L, ui->U); tnsVertex2d(ui->R, ui->U);
|
|
|
|
+ tnsVertex2d(ui->R, ui->B); tnsVertex2d(ui->L, ui->B);
|
|
tnsPackAs(GL_TRIANGLE_FAN);
|
|
tnsPackAs(GL_TRIANGLE_FAN);
|
|
- tnsColor4dv(laThemeColor(bt,LA_BT_BORDER));
|
|
|
|
- tnsVertex2d(ui->L, ui->U + h);
|
|
|
|
- tnsVertex2d(ui->L, ui->B);
|
|
|
|
- tnsVertex2d(ui->R, ui->B);
|
|
|
|
- tnsVertex2d(ui->R, ui->U + h);
|
|
|
|
- tnsPackAs(GL_LINE_LOOP);
|
|
|
|
|
|
+ real* bc=laThemeColor(bt,LA_BT_BORDER); real bcolor[24];
|
|
|
|
+ tnsVectorCopy4d(bc,bcolor); tnsVectorSet4(&bcolor[4],bc[0],bc[1],bc[2],bc[3]*0.6);
|
|
|
|
+ tnsVectorCopy4d(&bcolor[4],&bcolor[8]);
|
|
|
|
+ tnsVectorCopy4d(&bcolor[4],&bcolor[12]);
|
|
|
|
+ tnsVectorCopy4d(&bcolor[4],&bcolor[16]);
|
|
|
|
+ tnsVectorCopy4d(bcolor,&bcolor[20]);
|
|
|
|
+ tnsVertex2d(ui->L, ui->U + h); tnsVertex2d(ui->L, TNS_MIN2(ui->U+h*3,ui->B)); tnsVertex2d(ui->L, ui->B);
|
|
|
|
+ tnsVertex2d(ui->R, ui->B); tnsVertex2d(ui->R, TNS_MIN2(ui->U+h*3,ui->B)); tnsVertex2d(ui->R, ui->U + h);
|
|
|
|
+ tnsColorArray4d(bcolor,6);
|
|
|
|
+ tnsPackAs(GL_LINE_STRIP);
|
|
}
|
|
}
|
|
|
|
|
|
for (uil = ui->Subs.pFirst; uil; uil = uil->Item.pNext){
|
|
for (uil = ui->Subs.pFirst; uil; uil = uil->Item.pNext){
|
|
- l = page * w;
|
|
|
|
- if (uil != ui->Page){
|
|
|
|
- tnsUseNoTexture();
|
|
|
|
|
|
+ l = page*w; int IsThisPage=(uil==ui->Page);
|
|
|
|
+ tnsUseNoTexture();
|
|
|
|
+ if(!IsThisPage){
|
|
tnsColor4dv(laThemeColor(bt,LA_BT_ACTIVE));
|
|
tnsColor4dv(laThemeColor(bt,LA_BT_ACTIVE));
|
|
- tnsVertex2d(ui->L + l, ui->U);
|
|
|
|
- tnsVertex2d(ui->L + l + w, ui->U);
|
|
|
|
- tnsVertex2d(ui->L + l + w, ui->U + h);
|
|
|
|
- tnsVertex2d(ui->L + l, ui->U + h);
|
|
|
|
- tnsPackAs(GL_TRIANGLE_FAN);
|
|
|
|
- tnsColor4dv(laThemeColor(bt,LA_BT_BORDER));
|
|
|
|
- tnsVertex2d(ui->L + l, ui->U + h);
|
|
|
|
- tnsVertex2d(ui->L + l, ui->U);
|
|
|
|
- tnsVertex2d(ui->L + l + w, ui->U);
|
|
|
|
- tnsVertex2d(ui->L + l + w, ui->U + h);
|
|
|
|
- tnsPackAs(GL_LINE_STRIP);
|
|
|
|
- tnsDrawStringAuto(transLate(uil->TabName->Ptr), laThemeColor(bt,LA_BT_TEXT), ui->L+l+bt->LM, ui->L+l+w-bt->RM, ui->U, LA_TEXT_ALIGN_CENTER);
|
|
|
|
- }else{
|
|
|
|
- tnsUseNoTexture();
|
|
|
|
- tnsColor4dv(laThemeColor(bt,LA_BT_BORDER));
|
|
|
|
- tnsVertex2d(ui->L + l, ui->U);
|
|
|
|
- tnsVertex2d(ui->L + l + w, ui->U);
|
|
|
|
- tnsVertex2d(ui->L + l + w, ui->U + h);
|
|
|
|
- tnsVertex2d(ui->L + l, ui->U + h);
|
|
|
|
|
|
+ tnsVertex2d(ui->L + l, ui->U); tnsVertex2d(ui->L + l + w, ui->U);
|
|
|
|
+ tnsVertex2d(ui->L + l + w, ui->U + h); tnsVertex2d(ui->L + l, ui->U + h);
|
|
tnsPackAs(GL_TRIANGLE_FAN);
|
|
tnsPackAs(GL_TRIANGLE_FAN);
|
|
- tnsDrawStringAuto(transLate(uil->TabName->Ptr), laThemeColor(bt,LA_BT_TEXT_ACTIVE), ui->L+l+bt->LM, ui->L+l+w-bt->RM, ui->U, LA_TEXT_ALIGN_CENTER);
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ tnsColor4dv(laThemeColor(bt,LA_BT_BORDER));
|
|
|
|
+ tnsVertex2d(ui->L + l, ui->U + h); tnsVertex2d(ui->L + l, ui->U);
|
|
|
|
+ tnsVertex2d(ui->L + l + w, ui->U); tnsVertex2d(ui->L + l + w, ui->U + h);
|
|
|
|
+ tnsPackAs(IsThisPage?GL_LINE_STRIP:GL_LINE_LOOP);
|
|
|
|
+ tnsDrawStringAuto(transLate(uil->TabName->Ptr), laThemeColor(bt,IsThisPage?LA_BT_BORDER:LA_BT_TEXT), ui->L+l+bt->LM, ui->L+l+w-bt->RM, ui->U, LA_TEXT_ALIGN_CENTER);
|
|
page++;
|
|
page++;
|
|
}
|
|
}
|
|
tnsFlush();
|
|
tnsFlush();
|
|
@@ -2705,15 +2687,11 @@ int OPMOD_TabSelector(laOperator *a, laEvent *e){
|
|
int it = 0;
|
|
int it = 0;
|
|
int page;
|
|
int page;
|
|
|
|
|
|
- if (!laIsInUiItem(ui, e->x, e->y) || (!laIsInBound(e->x, e->y, ui->L, ui->R, ui->U, ui->U+LA_RH))){
|
|
|
|
- return LA_FINISHED;
|
|
|
|
- }
|
|
|
|
|
|
+ if (!laIsInBound(e->x, e->y, ui->L, ui->R, ui->U, ui->U+LA_RH)){ return LA_FINISHED; }
|
|
|
|
|
|
if (e->Type == LA_L_MOUSE_DOWN){
|
|
if (e->Type == LA_L_MOUSE_DOWN){
|
|
if (ui->Page->HeightCoeff && ui->R - e->x < LA_RH + bt->RM) return LA_RUNNING_PASS;
|
|
if (ui->Page->HeightCoeff && ui->R - e->x < LA_RH + bt->RM) return LA_RUNNING_PASS;
|
|
- for (uil = ui->Subs.pFirst; uil; uil = uil->Item.pNext){
|
|
|
|
- count++;
|
|
|
|
- }
|
|
|
|
|
|
+ for (uil = ui->Subs.pFirst; uil; uil = uil->Item.pNext){ count++; }
|
|
page = la_DetectColumn(ui, e->x, count);
|
|
page = la_DetectColumn(ui, e->x, count);
|
|
for (uil = ui->Subs.pFirst; uil; uil = uil->Item.pNext){
|
|
for (uil = ui->Subs.pFirst; uil; uil = uil->Item.pNext){
|
|
if (it == page){
|
|
if (it == page){
|