LINUX.ORG.RU

Ну очень липкие окна :)


0

0

Вот тут надо сделать липкие окна, т.е. что бы на расстоянии меджу двумя окнами ну к примеру 10 пикселов окна склеивались, но как только отодвигают то окна разлепляются, у меня получилось сделать но только уж очень неуклюже

void kmms::control_window_move()
{
reload_windows_state();

if(cx > mx + mainw->width() & cx < mx + mainw->width() + 10 & cy < my + mainw->height() &
cy > my - controlw->height()) controlw->move(mx+mainw->width(), cy);
if(cx > mx - controlw->width() & cx < mx + mainw->width() & cy > my + mainw->height() &
cy < my + mainw->height() + 10 ) controlw->move(cx, my+mainw->height());
}

т.е. при слипании и при растаскивании окон они начинают дёргаться из стороны в сторону, по направлению склеивания.

Может есть какие то уже отработанные алгоритмы данной фишки?

Заранее спасибо!!!

★★★★★

void kmms::reload_windows_state()
{
mx = mainw->x();
my = mainw->y();
cx = controlw->x();
cy = controlw->y();
px = playlistw->x();
py = playlistw->y();
ox = outw->x();
oy = outw->y();
}

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

cyclon, хоть бы совесть какую-нить имел :)... че, тут всем лором твой новый супер-пупер медиа-плэер писать будем?

anonymous
()
Ответ на: комментарий от anonymous

Ну не хотите отвечать не надо :)

cyclon ★★★★★
() автор топика

Hi!
Как я думаю: (flag=0 - окна расклеены) если flag==0, то как только расстояние между окнами 10 пикселов, окно перестает отвечать на действия мыши, затем ставим окно куда нам нужно, меняем flag=1(окна склеены), включаем ответ окна на действие мыши-возможно это нужно сделать в другом месте.
Если окна склеены (flag==1) то как только расстояние между окнами >10 пикселов flag=0

IPFreely ★★
()
Ответ на: комментарий от int19h

> Вообще-то, такими вещами WM должен заниматься.

Фишка в том что у меня используются скины и окна представляют собой виджеты без оконного обрамления в результате оконный менеджер не может управлять окнами.

Идея с флагами интересна, я пробовал уже, но чё то не получилось надо будет попробовать ещё раз, может сегегодня.

anonymous
()
Ответ на: комментарий от anonymous

Выше этой мой пост, пардон забыл зарегиться.

cyclon ★★★★★
() автор топика
Ответ на: комментарий от anonymous

> Фишка в том что у меня используются скины и окна представляют собой
> виджеты без оконного обрамления в результате оконный менеджер не
> может управлять окнами.

А какая WM'у разница, есть у окон обрамление или нет? Все равно их
можно таскать, зажав Alt...

int19h ★★★★
()

Слушай, может тебе поучиться вначале стоит? Университет закончить, например. У тебя возникают такие глупые и примитивные вопросы, что тошно. Почему бы тебе не взять например исходник xmms и посмотреть как это сделано у них? Или читать чужой код ты не умеешь? Кстати, ты уже разобрался с тем что если ты делаешь new то потом где-то нужно делать и delete? И что QString принято создавать на стеке?

bd
()
Ответ на: комментарий от bd

TO bd:

начнём с того что вопросы глупые от того что с этим не связывался, это во первых, далее, ты пробовал смотреть код xmms но не тупа а реально вникнуть, если ты смог всё понять то могу тя поздравить - ты гений. Дальше, вот скажи я тя чё просил отвечать??? не хочешь не отвечай или ты с сегоднешнего дня тут цензором будешь?? если на твой взгляд вопрос глупый и тя от него тошнит то закрой глаза и отлистай обратно к списку форумов и не смотри на него и уж тем более не отвечай на него. Это не наезд, но меня бесят люди которые считают что они самые умные а все кто задаёт на их взгляд глупые вопросы это лохи... или кто там. А учиться - я уже давно учусь правдо не на кодера да и поздно факультет менять в начале лета диплом бакалавра будет так что уже выщло время.

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

1) Вопросы у тебя глупые, так как ты не можешь сам найти нужную тебе информацию 2) Я не только смотрел код xmms, в свое время я осуществил его перенос на gtk2, но так как вскоре появился beep, я забил на это. 3) Не кипятись. Если ты не понимаешь что ты заколебал уже половину development'a, это твои проблемы. 4) Я не считаю что я самый умный. Более того, я уверен что это не так. Но я абсолютно уверен, что я умнее тебя. 5) Слава богу что ты не учишься на кодера.

bd
()
Ответ на: комментарий от bd

Помоему я заколебал только тебя, а вопрос я задал не потому что не знаю ответа на него, ответ знаю, а потому что может кто то знает способ лучше, вот и всё. Найти нужную информацию я могу, а впопрос был скорее для тех кто лично с этим занимался и знает какой то правильный способ и некии особенности реализации под qt, т.к. gtk не разу не трогал и потому не в курсе что там другого, хотя наверное всё так же. А если я тя заколебал, то это твои проблеммы и я не кипячусь, я те сказал не хочешь не отвечай, каждый думает за себя, а по поводу того кто умнее это вопрос спорный, так что не надо вы*бываться. Где написано что нельзя писать сюда вопросы, это форум в конце концов. И вообще что тут флейм разводить на эту тему....

Короче если я тя так уж и заколебал то не отвечай на мои вопросы, на этом и порешим, а если кто захочет таки ответить, то пусть отвечает. Ок?

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.