xcffib 1.11.2 → 1.12.0
raw patch · 9 files changed
+56/−17 lines, 9 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- generator/Data/XCB/Python/Parse.hs +23/−16
- test/generator/eventstruct.py +4/−0
- test/generator/randr.py +4/−0
- test/generator/render.py +4/−0
- test/generator/request.py +4/−0
- test/generator/request_reply.py +4/−0
- test/generator/switch.py +8/−0
- test/generator/type_pad.py +4/−0
- xcffib.cabal +1/−1
generator/Data/XCB/Python/Parse.hs view
@@ -96,8 +96,9 @@ globals = [mkDict "_events", mkDict "_errors"] name = xheader_header header add = [mkAddExt header]- parts <- mapM (processXDecl name) $ xheader_decls header- let (requests, decls) = collectBindings parts+ partsList <- mapM (processXDecl name) $ xheader_decls header+ let parts = concat partsList+ (requests, decls) = collectBindings parts ext = if length requests > 0 then [mkClass (name ++ "Extension") "xcffib.Extension" requests] else []@@ -674,18 +675,18 @@ processXDecl :: String -> XDecl- -> State TypeInfoMap BindingPart+ -> State TypeInfoMap [BindingPart] processXDecl ext (XTypeDef name typ) = do modify $ \m -> mkModify ext name (m M.! typ) m- return Noop+ return [Noop] processXDecl ext (XidType name) = -- http://www.markwitmer.com/guile-xcb/doc/guile-xcb/XIDs.html do modify $ mkModify ext name (BaseType "I")- return Noop+ return [Noop] processXDecl _ (XImport n) =- return $ Declaration [ mkRelImport n]+ return [Declaration [ mkRelImport n]] processXDecl _ (XEnum name membs) =- return $ Declaration [mkEnum name $ xEnumElemsToPyEnum id membs]+ return [Declaration [mkEnum name $ xEnumElemsToPyEnum id membs]] processXDecl ext (XStruct n _ membs) = do m <- get let (statements, len) = mkStructStyleUnpack "" ext m membs@@ -696,7 +697,7 @@ let rhs = Int theLen return $ mkAssign "fixed_size" rhs modify $ mkModify ext n (CompositeType ext n)- return $ Declaration [mkXClass n "xcffib.Struct" False statements (pack : fixedLength ++ synthetic)]+ return [Declaration [mkXClass n "xcffib.Struct" False statements (pack : fixedLength ++ synthetic)]] processXDecl ext (XEvent name opcode _ xge membs noSequence) = do m <- get let cname = name ++ "Event"@@ -707,9 +708,9 @@ eventsUpd = mkDictUpdate "_events" opcode cname isxge = fromMaybe False xge -- xgeexp = mkAssign "xge" (if fromMaybe False xge then (mkName "True") else (mkName "False"))- return $ Declaration [ mkXClass cname "xcffib.Event" isxge statements (pack : synthetic)+ return [Declaration [ mkXClass cname "xcffib.Event" isxge statements (pack : synthetic) , eventsUpd- ]+ ]] processXDecl ext (XError name opcode _ membs) = do m <- get let cname = name ++ "Error"@@ -718,10 +719,10 @@ (statements, _) = mkStructStyleUnpack prefix ext m membs errorsUpd = mkDictUpdate "_errors" opcode cname alias = mkAssign ("Bad" ++ name) (mkName cname)- return $ Declaration [ mkXClass cname "xcffib.Error" False statements [pack]+ return [Declaration [ mkXClass cname "xcffib.Error" False statements [pack] , alias , errorsUpd- ]+ ]] processXDecl ext (XRequest name opcode _ membs reply) = do m <- get let@@ -756,7 +757,13 @@ ++ [argChecked]) requestBody = buf ++ packStmts ++ [ret] request = mkMethod name allArgs requestBody- return $ Request request replyDecl+ baseArgs = ("self" : (filter (not . null) args))+ checkedMethod = mkMethod (name ++ "Checked") baseArgs+ [mkReturn $ mkCall ("self." ++ name) (map mkName (tail baseArgs) ++ [mkName "is_checked=True"])]+ uncheckedMethod = mkMethod (name ++ "Unchecked") baseArgs+ [mkReturn $ mkCall ("self." ++ name) (map mkName (tail baseArgs) ++ [mkName "is_checked=False"])]++ return [Request request replyDecl, Request checkedMethod [], Request uncheckedMethod []] processXDecl ext (XUnion name _ membs) = do m <- get let unpackF = structElemToPyUnpack unpackerCopy ext m@@ -772,7 +779,7 @@ pack = mkPackMethod ext name m Nothing [head membs] Nothing decl = [mkXClass name "xcffib.Union" False initMethodStmts [pack]] modify $ mkModify ext name (CompositeType ext name)- return $ Declaration decl+ return [Declaration decl] where unpackerCopy = mkCall "unpacker.copy" [] mkUnionUnpack :: (Maybe String, String)@@ -788,7 +795,7 @@ processXDecl ext (XidUnion name _) = -- These are always unions of only XIDs. do modify $ mkModify ext name (BaseType "I")- return Noop+ return [Noop] -- EventStruct basically describes a set of possible events that could be -- represented by this one member. Slated to land in 1.13, it is only used in@@ -803,7 +810,7 @@ -- again. processXDecl ext (XEventStruct name _) = do modify $ mkModify ext name (CompositeType ext name)- return $ Declaration $ [mkXClass name "xcffib.Buffer" False [] []]+ return [Declaration $ [mkXClass name "xcffib.Buffer" False [] []]] mkVersion :: XHeader -> Suite mkVersion header =
test/generator/eventstruct.py view
@@ -12,4 +12,8 @@ buf.write(xcffib.pack_list(events, EventForSend)) buf.write(xcffib.pack_list(classes, "B")) return self.send_request(31, buf, is_checked=is_checked)+ def SendExtensionEventChecked(self, device_id, propagate, num_classes, num_events, events, classes):+ return self.SendExtensionEvent(device_id, propagate, num_classes, num_events, events, classes, is_checked=True)+ def SendExtensionEventUnchecked(self, device_id, propagate, num_classes, num_events, events, classes):+ return self.SendExtensionEvent(device_id, propagate, num_classes, num_events, events, classes, is_checked=False) xcffib._add_ext(key, eventstructExtension, _events, _errors)
test/generator/randr.py view
@@ -62,4 +62,8 @@ buf = io.BytesIO() buf.write(struct.pack("=xx2xI", crtc)) return self.send_request(27, buf, GetCrtcTransformCookie, is_checked=is_checked)+ def GetCrtcTransformChecked(self, crtc):+ return self.GetCrtcTransform(crtc, is_checked=True)+ def GetCrtcTransformUnchecked(self, crtc):+ return self.GetCrtcTransform(crtc, is_checked=False) xcffib._add_ext(key, randrExtension, _events, _errors)
test/generator/render.py view
@@ -57,4 +57,8 @@ buf.write(color.pack() if hasattr(color, "pack") else COLOR.synthetic(*color).pack()) buf.write(xcffib.pack_list(rects, RECTANGLE)) return self.send_request(26, buf, is_checked=is_checked)+ def FillRectanglesChecked(self, op, dst, color, rects_len, rects):+ return self.FillRectangles(op, dst, color, rects_len, rects, is_checked=True)+ def FillRectanglesUnchecked(self, op, dst, color, rects_len, rects):+ return self.FillRectangles(op, dst, color, rects_len, rects, is_checked=False) xcffib._add_ext(key, renderExtension, _events, _errors)
test/generator/request.py view
@@ -10,4 +10,8 @@ buf.write(struct.pack("=I", value_mask)) buf.write(xcffib.pack_list(value_list, "I")) return self.send_request(1, buf, is_checked=is_checked)+ def CreateWindowChecked(self, depth, wid, parent, x, y, width, height, border_width, _class, visual, value_mask, value_list):+ return self.CreateWindow(depth, wid, parent, x, y, width, height, border_width, _class, visual, value_mask, value_list, is_checked=True)+ def CreateWindowUnchecked(self, depth, wid, parent, x, y, width, height, border_width, _class, visual, value_mask, value_list):+ return self.CreateWindow(depth, wid, parent, x, y, width, height, border_width, _class, visual, value_mask, value_list, is_checked=False) xcffib._add_ext(key, requestExtension, _events, _errors)
test/generator/request_reply.py view
@@ -41,4 +41,8 @@ buf = io.BytesIO() buf.write(struct.pack("=xx2x")) return self.send_request(99, buf, ListExtensionsCookie, is_checked=is_checked)+ def ListExtensionsChecked(self):+ return self.ListExtensions(is_checked=True)+ def ListExtensionsUnchecked(self):+ return self.ListExtensions(is_checked=False) xcffib._add_ext(key, request_replyExtension, _events, _errors)
test/generator/switch.py view
@@ -78,8 +78,16 @@ events = items.pop(0) buf.write(struct.pack("=I", events)) return self.send_request(59, buf, GetPropertyCookie, is_checked=is_checked)+ def GetPropertyChecked(self, value_mask, items):+ return self.GetProperty(value_mask, items, is_checked=True)+ def GetPropertyUnchecked(self, value_mask, items):+ return self.GetProperty(value_mask, items, is_checked=False) def GetPropertyWithPad(self, is_checked=True): buf = io.BytesIO() buf.write(struct.pack("=xx2x")) return self.send_request(60, buf, GetPropertyWithPadCookie, is_checked=is_checked)+ def GetPropertyWithPadChecked(self):+ return self.GetPropertyWithPad(is_checked=True)+ def GetPropertyWithPadUnchecked(self):+ return self.GetPropertyWithPad(is_checked=False) xcffib._add_ext(key, switchExtension, _events, _errors)
test/generator/type_pad.py view
@@ -73,4 +73,8 @@ buf.write(struct.pack("=xx2xxHH", max_names, pattern_len)) buf.write(xcffib.pack_list(pattern, "c")) return self.send_request(50, buf, ListFontsWithInfoCookie, is_checked=is_checked)+ def ListFontsWithInfoChecked(self, max_names, pattern_len, pattern):+ return self.ListFontsWithInfo(max_names, pattern_len, pattern, is_checked=True)+ def ListFontsWithInfoUnchecked(self, max_names, pattern_len, pattern):+ return self.ListFontsWithInfo(max_names, pattern_len, pattern, is_checked=False) xcffib._add_ext(key, type_padExtension, _events, _errors)
xcffib.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: xcffib-version: 1.11.2+version: 1.12.0 synopsis: A cffi-based python binding for X homepage: http://github.com/tych0/xcffib license: Apache-2.0