Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9767b26

Browse files
committed
Add Mime MimeType NodeInfo Resources
1 parent1394127 commit9767b26

File tree

6 files changed

+70
-41
lines changed

6 files changed

+70
-41
lines changed

‎Jamfile‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,11 +186,14 @@ local sourceFiles =
186186
PathFinder.cpp
187187
SymLink.cpp
188188
Statable.cpp
189+
Mime.cpp
190+
MimeType.cpp
189191
Resources.cpp
190192
ResourceStrings.cpp
191193
EntryList.cpp
192194
Query.cpp
193195
NodeMonitor.cpp
196+
NodeInfo.cpp
194197
#FilePanel.cpp
195198
;
196199

‎bindings/__init__.py‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,14 @@
8787
from .VolumeRosterimport*
8888
from .Pathimport*
8989
from .Statableimport*
90+
from .Mimeimport*
91+
from .MimeTypeimport*
9092
from .Resourcesimport*
9193
from .ResourceStringsimport*
9294
from .EntryListimport*
9395
from .Queryimport*
9496
from .NodeMonitorimport*
97+
from .NodeInfoimport*
9598

9699
#from .FilePanel import *
97100

‎bindings/storage/Mime.cpp‎

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,36 @@
44
#include<pybind11/operators.h>
55

66
#include<Mime.h>
7+
#include<Bitmap.h>
78

89
namespacepy= pybind11;
910

1011

11-
voiddefine_Mime(py::module_& m)
12+
PYBIND11_MODULE(Mime, m)
1213
{
1314
py::enum_<icon_size>(m,"icon_size","")
1415
.value("B_LARGE_ICON", icon_size::B_LARGE_ICON,"")
1516
.value("B_MINI_ICON", icon_size::B_MINI_ICON,"")
1617
.export_values();
1718

18-
m.attr("B_UPDATE_MIME_INFO_NO_FORCE") =py::cast(B_UPDATE_MIME_INFO_NO_FORCE);
19-
m.attr("B_UPDATE_MIME_INFO_FORCE_KEEP_TYPE") =py::cast(B_UPDATE_MIME_INFO_FORCE_KEEP_TYPE);
20-
m.attr("B_UPDATE_MIME_INFO_FORCE_UPDATE_ALL") =py::cast(B_UPDATE_MIME_INFO_FORCE_UPDATE_ALL);
19+
m.attr("B_UPDATE_MIME_INFO_NO_FORCE") =0;//hardcoded, not reading enum
20+
m.attr("B_UPDATE_MIME_INFO_FORCE_KEEP_TYPE") =1;
21+
m.attr("B_UPDATE_MIME_INFO_FORCE_UPDATE_ALL") =2;
2122

22-
m.attr("BBitmap") =py::cast(BBitmap);
23+
//m.attr("BBitmap") = py::cast(BBitmap);
2324

2425
m.def("update_mime_info", &update_mime_info,"",py::arg("path"),py::arg("recursive"),py::arg("synchronous"),py::arg("force"));
2526

2627
m.def("create_app_meta_mime", &create_app_meta_mime,"",py::arg("path"),py::arg("recursive"),py::arg("synchronous"),py::arg("force"));
2728

28-
m.def("get_device_icon", py::overload_cast<constchar *,void *,int>(&get_device_icon),"",py::arg("device"),py::arg("icon"),py::arg("size"));
29+
m.def("get_device_icon", py::overload_cast<constchar *,void *,int32>(&get_device_icon),"",py::arg("device"),py::arg("icon"),py::arg("size"));
2930

3031
m.def("get_device_icon", py::overload_cast<constchar *, BBitmap *, icon_size>(&get_device_icon),"",py::arg("device"),py::arg("icon"),py::arg("which"));
3132

32-
m.def("get_device_icon", py::overload_cast<constchar *,unsignedchar,size_t *, type_code *>(&get_device_icon),"",py::arg("device"),py::arg("_data"),py::arg("_size"),py::arg("_type"));
33-
33+
//m.def("get_device_icon", py::overload_cast<const char *, unsigned char, size_t *, type_code *>(&get_device_icon), "", py::arg("device"), py::arg("_data"), py::arg("_size"), py::arg("_type"));
34+
// unsigned char ->uint8**
3435
m.def("get_named_icon", py::overload_cast<constchar *, BBitmap *, icon_size>(&get_named_icon),"",py::arg("name"),py::arg("icon"),py::arg("which"));
3536

36-
m.def("get_named_icon", py::overload_cast<constchar *,unsignedchar,size_t *, type_code *>(&get_named_icon),"",py::arg("name"),py::arg("_data"),py::arg("_size"),py::arg("_type"));
37-
37+
//m.def("get_named_icon", py::overload_cast<const char *, unsigned char, size_t *, type_code *>(&get_named_icon), "", py::arg("name"), py::arg("_data"), py::arg("_size"), py::arg("_type"));
38+
// unsigned char ->uint8**
3839
}

‎bindings/storage/MimeType.cpp‎

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,40 +4,41 @@
44
#include<pybind11/operators.h>
55

66
#include<MimeType.h>
7+
#include<Bitmap.h>
78

89
namespacepy= pybind11;
910
usingnamespaceBPrivate;
1011
usingnamespaceBPrivate::Storage;
1112
usingnamespaceBPrivate::Storage::Mime;
1213

13-
voiddefine_MimeType(py::module_& m)
14+
PYBIND11_MODULE(MimeType, m)
1415
{
1516
py::enum_<app_verb>(m,"app_verb","")
1617
.value("B_OPEN", app_verb::B_OPEN,"")
1718
.export_values();
1819

19-
m.attr("B_META_MIME_CHANGED") =py::cast(B_META_MIME_CHANGED);
20+
m.attr("B_META_MIME_CHANGED") ='MMCH';
2021

21-
m.attr("B_ICON_CHANGED") =py::cast(B_ICON_CHANGED);
22-
m.attr("B_PREFERRED_APP_CHANGED") =py::cast(B_PREFERRED_APP_CHANGED);
23-
m.attr("B_ATTR_INFO_CHANGED") =py::cast(B_ATTR_INFO_CHANGED);
24-
m.attr("B_FILE_EXTENSIONS_CHANGED") =py::cast(B_FILE_EXTENSIONS_CHANGED);
25-
m.attr("B_SHORT_DESCRIPTION_CHANGED") =py::cast(B_SHORT_DESCRIPTION_CHANGED);
26-
m.attr("B_LONG_DESCRIPTION_CHANGED") =py::cast(B_LONG_DESCRIPTION_CHANGED);
27-
m.attr("B_ICON_FOR_TYPE_CHANGED") =py::cast(B_ICON_FOR_TYPE_CHANGED);
28-
m.attr("B_APP_HINT_CHANGED") =py::cast(B_APP_HINT_CHANGED);
29-
m.attr("B_MIME_TYPE_CREATED") =py::cast(B_MIME_TYPE_CREATED);
30-
m.attr("B_MIME_TYPE_DELETED") =py::cast(B_MIME_TYPE_DELETED);
31-
m.attr("B_SNIFFER_RULE_CHANGED") =py::cast(B_SNIFFER_RULE_CHANGED);
32-
m.attr("B_SUPPORTED_TYPES_CHANGED") =py::cast(B_SUPPORTED_TYPES_CHANGED);
33-
m.attr("B_EVERYTHING_CHANGED") =py::cast(B_EVERYTHING_CHANGED);
22+
m.attr("B_ICON_CHANGED") =0x00000001;
23+
m.attr("B_PREFERRED_APP_CHANGED") =0x00000002;
24+
m.attr("B_ATTR_INFO_CHANGED") =0x00000004;
25+
m.attr("B_FILE_EXTENSIONS_CHANGED") =0x00000008;
26+
m.attr("B_SHORT_DESCRIPTION_CHANGED") =0x00000010;
27+
m.attr("B_LONG_DESCRIPTION_CHANGED") =0x00000020;
28+
m.attr("B_ICON_FOR_TYPE_CHANGED") =0x00000040;
29+
m.attr("B_APP_HINT_CHANGED") =0x00000080;
30+
m.attr("B_MIME_TYPE_CREATED") =0x00000100;
31+
m.attr("B_MIME_TYPE_DELETED") =0x00000200;
32+
m.attr("B_SNIFFER_RULE_CHANGED") =0x00000400;
33+
m.attr("B_SUPPORTED_TYPES_CHANGED") =0x00000800;
34+
m.attr("B_EVERYTHING_CHANGED") =(int)0xFFFFFFFF;
3435

35-
m.attr("B_META_MIME_MODIFIED") =py::cast(B_META_MIME_MODIFIED);
36-
m.attr("B_META_MIME_DELETED") =py::cast(B_META_MIME_DELETED);
36+
m.attr("B_META_MIME_MODIFIED") ='MMMD';
37+
m.attr("B_META_MIME_DELETED") ='MMDL';
3738

38-
m.attr("MimeDatabase") =py::cast(MimeDatabase);
39+
//m.attr("MimeDatabase") = py::cast(BPrivate::MimeDatabase);
3940

40-
m.attr("CreateAppMetaMimeThread") =py::cast(CreateAppMetaMimeThread);
41+
//m.attr("CreateAppMetaMimeThread") = py::cast(CreateAppMetaMimeThread);
4142

4243
m.attr("B_APP_MIME_TYPE") =py::cast(B_APP_MIME_TYPE);
4344

@@ -58,25 +59,25 @@ py::class_<BMimeType>(m, "BMimeType")
5859
.def("Unset", &BMimeType::Unset,"")
5960
.def("InitCheck", &BMimeType::InitCheck,"")
6061
.def("Type", &BMimeType::Type,"")
61-
.def("IsValid", py::overload_cast<>(&BMimeType::IsValid),"")
62+
.def("IsValid", py::overload_cast<>(&BMimeType::IsValid, py::const_),"")
6263
.def("IsSupertypeOnly", &BMimeType::IsSupertypeOnly,"")
6364
.def("GetSupertype", &BMimeType::GetSupertype,"",py::arg("supertype"))
64-
.def("__eq__", py::overload_cast<const BMimeType &>(&BMimeType::operator==),"",py::arg("type"))
65-
.def("__eq__", py::overload_cast<constchar *>(&BMimeType::operator==),"",py::arg("type"))
65+
.def("__eq__", py::overload_cast<const BMimeType &>(&BMimeType::operator==, py::const_),"",py::arg("type"))
66+
.def("__eq__", py::overload_cast<constchar *>(&BMimeType::operator==, py::const_),"",py::arg("type"))
6667
.def("Contains", &BMimeType::Contains,"",py::arg("type"))
6768
.def("Install", &BMimeType::Install,"")
6869
.def("Delete", &BMimeType::Delete,"")
6970
.def("IsInstalled", &BMimeType::IsInstalled,"")
70-
.def("GetIcon", py::overload_cast<BBitmap *, icon_size>(&BMimeType::GetIcon),"",py::arg("icon"),py::arg("size"))
71-
.def("GetIcon", py::overload_cast<unsignedchar,size_t *>(&BMimeType::GetIcon),"",py::arg("_data"),py::arg("_size"))
71+
.def("GetIcon", py::overload_cast<BBitmap *, icon_size>(&BMimeType::GetIcon, py::const_),"",py::arg("icon"),py::arg("size"))
72+
//.def("GetIcon", py::overload_cast<unsigned char, size_t *>(&BMimeType::GetIcon, py::const_), "", py::arg("_data"), py::arg("_size"))
7273
.def("GetPreferredApp", &BMimeType::GetPreferredApp,"",py::arg("signature"),py::arg("verb")=B_OPEN)
7374
.def("GetAttrInfo", &BMimeType::GetAttrInfo,"",py::arg("info"))
7475
.def("GetFileExtensions", &BMimeType::GetFileExtensions,"",py::arg("extensions"))
7576
.def("GetShortDescription", &BMimeType::GetShortDescription,"",py::arg("description"))
7677
.def("GetLongDescription", &BMimeType::GetLongDescription,"",py::arg("description"))
7778
.def("GetSupportingApps", &BMimeType::GetSupportingApps,"",py::arg("signatures"))
7879
.def("SetIcon", py::overload_cast<const BBitmap *, icon_size>(&BMimeType::SetIcon),"",py::arg("icon"),py::arg("size"))
79-
.def("SetIcon", py::overload_cast<unsignedchar,size_t>(&BMimeType::SetIcon),"",py::arg("data"),py::arg("size"))
80+
//.def("SetIcon", py::overload_cast<unsigned char, size_t>(&BMimeType::SetIcon), "", py::arg("data"), py::arg("size"))
8081
.def("SetPreferredApp", &BMimeType::SetPreferredApp,"",py::arg("signature"),py::arg("verb")=B_OPEN)
8182
.def("SetAttrInfo", &BMimeType::SetAttrInfo,"",py::arg("info"))
8283
.def("SetFileExtensions", &BMimeType::SetFileExtensions,"",py::arg("extensions"))
@@ -86,18 +87,18 @@ py::class_<BMimeType>(m, "BMimeType")
8687
.def_static("GetInstalledTypes", py::overload_cast<BMessage *>(&BMimeType::GetInstalledTypes),"",py::arg("types"))
8788
.def_static("GetInstalledTypes", py::overload_cast<constchar *, BMessage *>(&BMimeType::GetInstalledTypes),"",py::arg("supertype"),py::arg("subtypes"))
8889
.def_static("GetWildcardApps", &BMimeType::GetWildcardApps,"",py::arg("wildcardApps"))
89-
.def_static("IsValid", py::overload_cast<constchar *>(&BMimeType::IsValid),"",py::arg("mimeType"))
90+
.def_static("IsValid_static", py::overload_cast<constchar *>(&BMimeType::IsValid),"",py::arg("mimeType"))
9091
.def("GetAppHint", &BMimeType::GetAppHint,"",py::arg("ref"))
9192
.def("SetAppHint", &BMimeType::SetAppHint,"",py::arg("ref"))
92-
.def("GetIconForType", py::overload_cast<constchar *, BBitmap *, icon_size>(&BMimeType::GetIconForType),"",py::arg("type"),py::arg("icon"),py::arg("which"))
93-
.def("GetIconForType", py::overload_cast<constchar *,unsignedchar,size_t *>(&BMimeType::GetIconForType),"",py::arg("type"),py::arg("_data"),py::arg("_size"))
93+
.def("GetIconForType", py::overload_cast<constchar *, BBitmap *, icon_size>(&BMimeType::GetIconForType, py::const_),"",py::arg("type"),py::arg("icon"),py::arg("which"))
94+
//.def("GetIconForType", py::overload_cast<const char *, unsigned char, size_t *>(&BMimeType::GetIconForType, py::const_), "", py::arg("type"), py::arg("_data"), py::arg("_size"))
9495
.def("SetIconForType", py::overload_cast<constchar *,const BBitmap *, icon_size>(&BMimeType::SetIconForType),"",py::arg("type"),py::arg("icon"),py::arg("which"))
95-
.def("SetIconForType", py::overload_cast<constchar *,unsignedchar,size_t>(&BMimeType::SetIconForType),"",py::arg("type"),py::arg("data"),py::arg("size"))
96+
.def("SetIconForType", py::overload_cast<constchar *,const uint8*,size_t>(&BMimeType::SetIconForType),"",py::arg("type"),py::arg("data"),py::arg("size"))
9697
.def("GetSnifferRule", &BMimeType::GetSnifferRule,"",py::arg("result"))
9798
.def("SetSnifferRule", &BMimeType::SetSnifferRule,"",py::arg(""))
9899
.def_static("CheckSnifferRule", &BMimeType::CheckSnifferRule,"",py::arg("rule"),py::arg("parseError"))
99100
.def_static("GuessMimeType", py::overload_cast<const entry_ref *, BMimeType *>(&BMimeType::GuessMimeType),"",py::arg("file"),py::arg("type"))
100-
.def_static("GuessMimeType", py::overload_cast<constvoid *,int, BMimeType *>(&BMimeType::GuessMimeType),"",py::arg("buffer"),py::arg("length"),py::arg("type"))
101+
.def_static("GuessMimeType", py::overload_cast<constvoid *,int32, BMimeType *>(&BMimeType::GuessMimeType),"",py::arg("buffer"),py::arg("length"),py::arg("type"))
101102
.def_static("GuessMimeType", py::overload_cast<constchar *, BMimeType *>(&BMimeType::GuessMimeType),"",py::arg("filename"),py::arg("type"))
102103
.def_static("StartWatching", &BMimeType::StartWatching,"",py::arg("target"))
103104
.def_static("StopWatching", &BMimeType::StopWatching,"",py::arg("target"))

‎bindings/storage/NodeInfo.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ py::class_<BNodeInfo>(m, "BNodeInfo")
2929
.def("GetAppHint", &BNodeInfo::GetAppHint,"",py::arg("ref"))
3030
.def("SetAppHint", &BNodeInfo::SetAppHint,"",py::arg("ref"))
3131
.def("GetTrackerIcon", py::overload_cast<BBitmap *, icon_size>(&BNodeInfo::GetTrackerIcon, py::const_),"",py::arg("icon"),py::arg("which")=B_LARGE_ICON)
32-
.def_static("GetTrackerIcon", py::overload_cast<const entry_ref *, BBitmap *, icon_size>(&BNodeInfo::GetTrackerIcon),"",py::arg("ref"),py::arg("icon"),py::arg("which")=B_LARGE_ICON)
32+
.def_static("GetTrackerIcon_static", py::overload_cast<const entry_ref *, BBitmap *, icon_size>(&BNodeInfo::GetTrackerIcon),"",py::arg("ref"),py::arg("icon"),py::arg("which")=B_LARGE_ICON)
3333
;
3434

3535

‎bindings/storage/Resources.cpp‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,17 @@ namespace py = pybind11;
1111
//using namespace BPrivate::Storage::Mime;
1212
//using namespace BPackageKit;
1313

14+
std::vector<char*>convertConstCharPtrArray(constchar** constCharPtrArray, std::size_t size) {
15+
std::vector<char*> charPtrVector;
16+
17+
for (std::size_t i =0; i < size; ++i) {
18+
// Copia ogni stringa di caratteri nel vettore
19+
charPtrVector.push_back(const_cast<char*>(constCharPtrArray[i]));
20+
}
21+
22+
return charPtrVector;
23+
}
24+
1425
PYBIND11_MODULE(Resources, m)
1526
{
1627
//m.attr("ResourcesContainer") = py::cast(ResourcesContainer);
@@ -40,6 +51,16 @@ py::class_<BResources>(m, "BResources")
4051
.def("HasResource", py::overload_cast<type_code, int32>(&BResources::HasResource),"",py::arg("type"),py::arg("id"))
4152
.def("HasResource", py::overload_cast<type_code,constchar *>(&BResources::HasResource),"",py::arg("type"),py::arg("name"))
4253
//.def("GetResourceInfo", py::overload_cast<int32, type_code *, int32*, const char * *, size_t *>(&BResources::GetResourceInfo), "", py::arg("byIndex"), py::arg("typeFound"), py::arg("idFound"), py::arg("nameFound"), py::arg("lengthFound"))
54+
.def("GetResourceInfo", [](BResources& self, int32 byIndex){
55+
type_code typeFound;
56+
int32 idFound;
57+
constchar * nameFound;
58+
//std::vector<char *> nameFound;
59+
size_t lengthFound;
60+
bool result = self.GetResourceInfo(byIndex, &typeFound, &idFound, &nameFound, &lengthFound);
61+
std::vector<char*> charPtrVector =convertConstCharPtrArray(&nameFound, lengthFound);
62+
returnpy::make_tuple(result, typeFound, idFound, charPtrVector, lengthFound);
63+
},"",py::arg("byIndex"))
4364
//.def("GetResourceInfo", py::overload_cast<type_code, int32, int32*, const char * *, size_t *>(&BResources::GetResourceInfo), "", py::arg("byType"), py::arg("andIndex"), py::arg("idFound"), py::arg("nameFound"), py::arg("lengthFound"))
4465
//.def("GetResourceInfo", py::overload_cast<type_code, int32, const char * *, size_t *>(&BResources::GetResourceInfo), "", py::arg("byType"), py::arg("andID"), py::arg("nameFound"), py::arg("lengthFound"))
4566
.def("GetResourceInfo", py::overload_cast<type_code,constchar *, int32*,size_t *>(&BResources::GetResourceInfo),"",py::arg("byType"),py::arg("andName"),py::arg("idFound"),py::arg("lengthFound"))

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp