на deb пакеты жалуются.
подробнее пока не знаю, знаю что у меня doublecmd_0.3.5-1.gtk2_i386.deb "встал" но не запускается, только под рутом , после первого запуска из под рута запускается из под пользователя, но не закрывается.
Модератор: Модераторы
ViTality писал(а):А что значит "навигация в стиле Lynx"?
И в этом разделе("Настройка/Параметры/Поведение") чекбоксы должны быть 3-х позиционные?
Да, хотелось бы нормальный(обычный) скролл колесиком мышки, чтоб прокручивался весь список файлов, а не курсор бегал. А то пока прокручишь его вниз...
Так это сейчас настраивается на вкладке "Поведение", правда не под всеми виджетсетами корректно работает
Alexx2000 писал(а):Как сделать для QT4 вроде нашел, покапавшись в исходниках smplayer, нужно использовать QWidget::winId ()
Дома могу попробовать сделать...
uses
..................................
x,
{$IFDEF LCLGTK} gtk, gdk, glib, {$ENDIF}
{$IFDEF LCLGTK2} gtk2, gdk2, glib2, gdk2x, {$ENDIF}
{$IFDEF LCLQT} qt4, {$ENDIF}
................................................................
type
//Class implementing mplayer control
{ TMPlayer }
TMPlayer=class(TThread)
public
//---------------------
hWidget:THandle; //the integrable widget
fileName:string; //filename
xid:TWindow; //X window handle
pr:TProcess; //mplayer's process
pmplayer:string; //path to mplayer
//---------------------
constructor Create(AFilename:String);
destructor destroy; override;
procedure SetParentWidget(AWidget:thandle);
protected
procedure Execute; override;
private
end;
{ TMPlayer }
constructor TMPlayer.Create(AFilename:String);
var pf:TExProcess;
begin
inherited Create(true);
filename:='"'+AFilename+'"';
pf:=TExProcess.Create('which mplayer');
pf.Execute;
pmplayer:=pf.RezList[0]+' ';
pf.Free;
writeln('PLUGIN : found mplayer in :' + pmplayer);
end;
destructor TMPlayer.destroy;
begin
if pr.Running then
pr.Terminate(0);
pr.Free;
inherited destroy;
end;
procedure TMPlayer.SetParentWidget(AWidget: THandle);
{$IFDEF LCLQT}
begin
xid:= QWidget_winId(QWidgetH(AWidget));
hWidget:= AWidget;
end;
{$ELSE}
var
widget,
mySocket:PGtkWidget; //the socket
begin
widget := gtk_vbox_new(FALSE,0);
mySocket := gtk_socket_new();
gtk_container_add (GTK_CONTAINER(widget), mySocket);
gtk_widget_show(mySocket);
gtk_widget_show(widget);
//*****
gtk_container_add (GTK_CONTAINER (PGtkWidget(Awidget)), widget);
gtk_widget_realize(mySocket);
gtk_widget_hide(PGtkWidget(AWidget));
{$IFDEF LCLGTK}
xid:=(PGdkWindowPrivate(widget^.window))^.xwindow;
{$ENDIF}
{$IFDEF LCLGTK2}
xid:=GDK_WINDOW_XID(widget^.window);
{$ENDIF}
hWidget:= THandle(widget);
end;
{$ENDIF}
procedure TMPlayer.Execute;
begin
pr:=TProcess.Create(nil);
pr.Options := Pr.Options + [poWaitOnExit,poNoConsole{,poUsePipes}]; //mplayer stops if poUsePipes used.
pr.CommandLine:=pmplayer+fileName+' -wid '+IntToStr(xid);
pr.Execute;
end;
.........................................................
function ListLoad(ParentWin:thandle;FileToLoad:pchar;ShowFlags:integer):thandle; stdcall;
var p:TMPlayer;
begin
p:=TMPlayer.Create(string(FileToLoad));
p.SetParentWidget(ParentWin);
//Create list if none
if not assigned(List) then
List:=TStringList.Create;
//add to list new plugin window and it's info
List.AddObject(IntToStr(integer(p.hWidget)),TPlugInfo.Create);
with TPlugInfo(List.Objects[List.Count-1]) do
begin
fFileToLoad:=FileToLoad;
fShowFlags:=ShowFlags;
AddControl(p);
end;
Result:=integer(p.hWidget);
p.Resume;
end;
Alexx2000 писал(а):Так вроде сделал (пока не коммитил), работает и под QT4 (правда при закрытии падает) и под GTK2. Правда код какой-то корявый (или пойдет?):
работает и под QT4 (правда при закрытии падает)
Вот только не знаю как лучше на каждый widgetset свой T(widgetset)Player класс или один на все (как в вышеприведенным примере). Пока различий не так много.
Alexx2000 писал(а):Планируешь добавить, в него что-нибудь еще?
Alexx2000 писал(а):QT4 (правда при закрытии падает)
FreeLibrary(FModuleHandle);
alexs писал(а):Вынеси код, зависимый от виджета в различные инклуды - будет проще.
B4rr4cuda писал(а):Мне другое интересно - будет ли этот плаг работать, если он будет запущен в панели быстрого просмотра (которая рано или поздно будет реализована)?
B4rr4cuda писал(а):Alexx2000 писал(а):QT4 (правда при закрытии падает)
Ппц. Оказываеться креш приложения вызывает
- Код: Выделить всё
FreeLibrary(FModuleHandle);
если вызывается при закрытии окна.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1